OpenAM と cybozu.com の SAML 認証を確認してみる

# ０．はじめに

以前、Amazon Linux に OpenAM をインストールしたので、それを使って cybozu.com の SAML 認証を確認してみます。

* [Amazon Linux に OpenAM をインストールしてみる - Qiita](http://qiita.com/kusokamayarou/items/3ed839a7e51b8137b87a)

# １．cybozu.com に SP の設定をする

1. 以下のサイトの手順に従って、cybozu.com の試用サイトを用意します。
<br>　
    * (お試し方法 | サイボウズ製品サイト cybozu.com)[https://www.cybozu.com/jp/support/tutorial/trial.html]
<br>　
2. 試用サイトへ、アクセスしログインします。
<br>　
    * ![1001.png](https://qiita-image-store.s3.amazonaws.com/0/161939/5a154f56-f912-972e-1e09-fdfa40595528.png)
<br>　
3. 「cybozu.com 共通管理」ボタンを押下します。
<br>　
    * ![1002.png](https://qiita-image-store.s3.amazonaws.com/0/161939/d0ed72a9-489e-8c05-0909-ff7ac6ed3ce7.png)
<br>　
4. 左側ペインの「ログイン」リンクをクリックします。
<br>　
    * ![1003.png](https://qiita-image-store.s3.amazonaws.com/0/161939/6d22c751-9450-8e8e-8a4a-4706b6836ed5.png)
<br>　
5. 一番下にある「SAML認証」の項目を設定し、「保存」ボタンを押下します。
    * SAML 認証を有効にする : ☑︎
    * Identity ProviderのSSOエンドポイントURL（HTTP-Redirect） : 
        * https://[FQDN]:443/openam/SSORedirect/metaAlias/idp
    * cybozu.comからのログアウト後に遷移するURL : 
        * https://[FQDN]:443/openam/UI/Logout?goto=https://[FQDN]:443/openam/
    * Identity Providerが署名に使用する公開鍵の証明書 : 
        * 作成した証明書(mykeystore.cer)をアップロードします。
    * Service Providerメタデータのダウンロード
        * OpenAM の SP の設定に必要なので、リンクをクリックしファイルをダウンロードしておきます。
<br>　
    * ![4c57861c-80d0-49a9-8a10-33770e616f3d.png](https://qiita-image-store.s3.amazonaws.com/0/161939/3cc4dfe0-1be5-a333-a16a-260b7397b6df.png)

# ２．cybozu.com に連携ユーザーを追加する

1. ログイン後、左側ペインの「組織/ユーザー」リンクをクリックすると、「組織とユーザーの設定」画面が表示されるので、「ユーザーの追加」ボタンを押下します。
<br>　
    * ![1005.png](https://qiita-image-store.s3.amazonaws.com/0/161939/880c5b8b-4731-5be2-789f-4abd99b89714.png)
<br>　
2. 「ユーザーの追加」画面が表示されるので、以下の項目を設定し、「保存」ボタンを押下します。
    * 名前 - 表示名 : 適当な値を入力します。
    * ログイン名 : メールアドレス
        * これが連携キーになるので、一意となるものでなければなりません。
<br>　
    * ![1006.png](https://qiita-image-store.s3.amazonaws.com/0/161939/4f2dc30a-0759-4ddd-d540-8ac48654d5ae.png)
<br>　
3. 「パスワードの設定」ダイアログが表示されるので、パスワードを設定し、「設定」ボタンを押下します。
<br>　
    * ![1007.png](https://qiita-image-store.s3.amazonaws.com/0/161939/5ea8c4b2-de86-9324-00f6-174b1c0d6d09.png)

# ３．OpenAM に連携ユーザーを追加する

1. https://〜/openam/ にアクセスし、ログインします。
<br>　
    * ![2001.png](https://qiita-image-store.s3.amazonaws.com/0/161939/60aef402-5488-665e-44d5-608cdc7a7e37.png)
<br>　
2. 「Realms」の一覧画面が表示されるので、「Top Level Realm」をクリックします。
<br>　　
    * ![2001.png](https://qiita-image-store.s3.amazonaws.com/0/161939/5837e62c-a94c-f734-dd3b-b29fccaaa289.png)
<br>　
3. 「Top Level Realm」の詳細画面が表示されるので、左側ペインの「Subjects」リンクをクリックします。
<br>　　
    * ![96fe8232-bda7-e115-a92b-5a88a01dee93.png](https://qiita-image-store.s3.amazonaws.com/0/161939/884435dd-c541-22de-b02e-b1ea17e8f91e.png)
<br>　
4. 「ユーザー」の一覧画面が表示されるので、「新規」ボタンを押下します。
<br>　　
    * ![3002.png](https://qiita-image-store.s3.amazonaws.com/0/161939/2f085c70-e826-af0c-fcac-2bf22d487378.png)
<br>　
5. 「新しいユーザー」の登録画面が表示されるので、以下の項目を設定し、「了解」ボタンを押下します。
    * ID : メールアドレス
        * 連携キーとなるので、サイボウズと合わせること。
    * 名 : ※任意
    * 姓 : ※任意
    * フルネーム : ※任意
    * パスワード : ※任意
    * パスワード (確認) : ※上記と同じ
    * ユーザー状態 : アクティブ　※デフォルト
<br>　　
    * ![3003.png](https://qiita-image-store.s3.amazonaws.com/0/161939/d24bf880-468d-a5ab-8ee8-b0fa9ae22741.png)

# ４．OpenAM に IdP を登録する

1. https://〜/openam/ にアクセスし、ログインします。
<br>　
    * ![2001.png](https://qiita-image-store.s3.amazonaws.com/0/161939/60aef402-5488-665e-44d5-608cdc7a7e37.png)
<br>　
2. 「Realms」の一覧画面が表示されるので、「Top Level Realm」をクリックします。
<br>　　
    * ![2001.png](https://qiita-image-store.s3.amazonaws.com/0/161939/5837e62c-a94c-f734-dd3b-b29fccaaa289.png)
<br>　
3. 「Top Level Realm」の詳細画面が表示されるので、「Create SAMLv2 Providers」ボタンを押下します。
<br>　　
    * ![00c632fc-88c5-6efb-f9b3-ef4eb96989ce.png](https://qiita-image-store.s3.amazonaws.com/0/161939/8f32be11-63ec-1195-838b-c40e7ac3b462.png)
<br>　
4. 「Create SAMLv2 Providers」の詳細画面が表示されるので、「Create Hosted Identity Providers」ボタンを押下します。
<br>　　
    * ![92f25994-dceb-2ad0-1495-19e3ac4a1dc5.png](https://qiita-image-store.s3.amazonaws.com/0/161939/1f6ea357-5111-840f-1cb2-faa1119b48f2.png)
<br>　
5. 「Create Hosted Identity Providers」の詳細画面が表示されるので、以下の項目を設定し、「設定」ボタンを押下します。
    * このプロバイダーのメタデータがありますか : いいえ
    * 名前 : https://[FQDN]:443/openam/
    * 署名鍵 : 
        * 作成した証明書(openam-idp)を選択します。
    * 新しいトラストサークル : ※任意
<br>　　
    * ![b214eaba-98e5-8708-2b2f-5a70e684af7e.png](https://qiita-image-store.s3.amazonaws.com/0/161939/58374866-898f-ddf9-2b28-7fa011df6e94.png)
<br>　
6. 設定終了後、FEDERATION (連携) の画面に遷移し、登録した IdP のリンクをクリックします。
<br>　　
    * ![5003.png](https://qiita-image-store.s3.amazonaws.com/0/161939/bcfa8a14-2ddd-f710-e67f-38cfcd9cd544.png)
<br>　
7. 登録した IdP の詳細画面において、以下の項目を変更し、「保存」ボタンを押下します。
    * 署名と暗号化
        * 証明書エイリアス
            * キーパスワード : 証明書のキーパスワード
    * NameID の書式
        * NameID の値マップ
            * `urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified=` を削除し、
            * `urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified=uid` を追加
<br>　　
    * ![5004.png](https://qiita-image-store.s3.amazonaws.com/0/161939/e740ebca-c84e-a73e-1cef-2b34837ead34.png)







# ５．OpenAM に SP を登録する

1. https://〜/openam/ にアクセスし、ログインします。
<br>　
    * ![2001.png](https://qiita-image-store.s3.amazonaws.com/0/161939/60aef402-5488-665e-44d5-608cdc7a7e37.png)
<br>　
2. 「Realms」の一覧画面が表示されるので、「Top Level Realm」をクリックします。
<br>　　
    * ![2001.png](https://qiita-image-store.s3.amazonaws.com/0/161939/5837e62c-a94c-f734-dd3b-b29fccaaa289.png)
<br>　
3. 「Top Level Realm」の詳細画面が表示されるので、「Create SAMLv2 Providers」ボタンを押下します。
<br>　　
    * ![00c632fc-88c5-6efb-f9b3-ef4eb96989ce.png](https://qiita-image-store.s3.amazonaws.com/0/161939/8f32be11-63ec-1195-838b-c40e7ac3b462.png)
<br>　
4. 「Create SAMLv2 Providers」の詳細画面が表示されるので、「Register Remote Service Providers」ボタンを押下します。
<br>　　
    * ![5001.png](https://qiita-image-store.s3.amazonaws.com/0/161939/87d93eda-64af-8205-9441-0a17094c1c64.png)
<br>　
5. 「Register Remote Service Providers」の詳細画面が表示されるので、以下の項目を設定し、「設定」ボタンを押下します。
    * メタデータファイルはどこに存在しますか : ○ URL ● ファイル
        * cybozu.com からダウンロードしたメタデータファイル(spmetadata.xml)をアップロード
    * トラストサークル : 
        * ● 既存のトラストサークルに追加します ○ 新しいトラストサークルに追加します
        * 既存のトラストサークル : ※ IdP 登録時に作成したものを設定
<br>　　
    * ![5002.png](https://qiita-image-store.s3.amazonaws.com/0/161939/d38b2c4c-483c-fc0b-551a-2c3099825c02.png)

# ９９．ハマりポイント

* IdP の登録後の設定の変更がわからなかったですね。SalesForce の設定を見ると、似たような設定をしていたので、やってみたらうまく認証が走りました。
<br>　
* あと、キーパスワードを変更しなきゃいけない点もよくわかりませんでした。Debug のログをみたら、エラーメッセージが出力されてて、ビンゴって感じでした。

# ＸＸ．まとめ

とりあえず、cybozu.com との SAML 認証は確認できたので、次は Debug のログを見つつ、SAML の認証におけるリクエストのやりとりなどを確認をしていこうかなと。