このページについて
OktaをIdPとして利用し、ZUNDA IDとSAML連携させるための手順を説明します。この設定を完了すると、Oktaにサインインしているユーザーが、その認証情報を用いてZUNDA IDへシングルサインオンでログインできるようになります。
設定に必要なもの
事前に以下を揃えておいてください。
-
Oktaのアプリケーション統合を作成・管理できる権限を持つユーザー
Okta管理者(Super Admin もしくは Application Admin)ロールが必要です。
-
ZUNDA IDの認証方法の管理権限を持つユーザー
SAMLプロバイダーの作成と設定を行うため、ZUNDA IDの管理権限を持つユーザーが必要です。
-
事前にリカバリーキーを発行・保管していること
設定不備やIdP障害によるロックアウトを防ぐため、ログイン方法のリカバリー設定の設定方法を参照し、リカバリーキーを事前に発行してください。
設定手順
ZUNDA IDとOkta Admin Consoleの両方を交互に操作して設定を進めます。両方の画面を同時に開いておくとスムーズです。
ZUNDA IDの「ログイン方法設定」画面を開き、「SAMLプロバイダー」を追加してください
表示名に任意の名前(例:Okta)を入力し、「作成」をクリックして次の画面に進めてください。
表示されたプロバイダー詳細画面より、「メタデータURL(SP)」の「ダウンロード」ボタンをクリックして、SPのメタデータXMLをダウンロードしてください
Okta Admin Console(<your-domain>-admin.okta.com)にログインし、左側メニューから「アプリケーション」→「アプリケーション」を開いて、「アプリ統合を作成」をクリックしてください
「新しいアプリ統合を作成」ダイアログで、サインオン方式として「SAML 2.0」を選択し、「次へ」をクリックしてください
OIDCではなくSAML 2.0を選択することで、後続のステップでSAMLパラメータを設定できる画面に進めます。
一般設定でアプリ名に「ZUNDA ID」などわかりやすい名前を入力し、「次へ」をクリックしてください
ここで入力したアプリ名は、Oktaのダッシュボード上で表示されます。任意でアプリのロゴをアップロードしておくと、ユーザーがダッシュボードからアプリを起動する際に識別しやすくなります。
「SAMLを構成」画面で以下のパラメータを入力してください
これらのパラメータは、ZUNDA ID側でSPとして公開している値と一致させる必要があります。
- シングルサインオンURL
https://id.zunda.co.jp/auth/saml/acs
- オーディエンスURI(SPエンティティID)
https://id.zunda.co.jp/saml/sp
- 名前IDのフォーマット
EmailAddress
- アプリケーションのユーザー名
メールアドレス
上記の値は、先ほどZUNDA IDからダウンロードしたSPメタデータXMLにも記載されていますので、必要に応じて参照してください。入力が完了したら、画面下部の「次へ」をクリックしてください。
フィードバック画面で「これは当社で作成した社内アプリです(This is an internal app that we have created)」にチェックを入れ、「終了」をクリックしてアプリ統合を作成してください
このチェックを入れることで、Oktaのアプリ統合審査プロセスをスキップし、すぐに自社内でアプリを利用できるようになります。
作成されたアプリの「サインオン」タブを開き、「メタデータの詳細」セクションに表示されている「メタデータURL」をブラウザで開いて、表示されたXMLの内容をコピーするか、XMLファイルとして保存してください
このメタデータには、OktaのIdP証明書・SSO URL・エンティティIDなどが含まれており、ZUNDA ID側にインポートすることでIdP側の設定を一括で取り込めます。ZUNDA IDはメタデータURLを直接指定する方式には対応していないため、XMLの内容そのもの(テキスト)かファイルとして用意する必要があります。
ZUNDA IDのプロバイダー詳細画面に戻り、「メタデータXMLをインポート」ボタンをクリックしてください
表示されたダイアログから「ファイルから読み込む」をクリックし、先ほど保存したOktaのメタデータXMLファイルを選択してください。プレビューにIdP Entity IDやSSO URLが表示されることを確認したら、「メタデータXMLをインポート」ボタンをクリックしてください。
SP証明書の登録
必須ではありませんが、Okta側にZUNDA IDのSP証明書を登録し、AuthnRequestの署名検証を有効化することで、リクエストが確かにSP(ZUNDA ID)から送信されたものであることをOktaが暗号学的に検証できるようになり、なりすましやリクエストの改ざんに対するセキュリティが高まります。
ZUNDA IDのOktaプロバイダー詳細画面より、「SP証明書」セクションの「ダウンロード」ボタンをクリックして、SP証明書ファイルを保存してください
Okta側に戻り、作成したアプリの「サインオン」タブから「SAMLの設定」の「編集」をクリックしてください
「SAMLの設定」を編集することで、署名証明書のアップロードや属性ステートメントの追加など、追加の設定を行えるようになります。
「一般設定」画面はもとのままで「次へ」をクリックしてください
「SAMLを構成」画面を下にスクロールし、「署名証明書」の「ファイルの参照」をクリックして、先ほどZUNDA IDからダウンロードしたSP証明書をアップロードしてください
アップロードした証明書は、Oktaが受信するAuthnRequestの署名検証に使用されます。これにより、Okta側でリクエストの正当性を確認できるようになります。
証明書がアップロードされ、画面上に証明書の情報(発行者・有効期限など)が表示されることを確認したら、「次へ」をクリックしてください。
フィードバック画面で「これは当社で作成した社内アプリです」にチェックを入れ、「終了」をクリックして保存してください
これで署名検証の設定は完了です。続いて、ユーザー属性の連携を設定します。
属性ステートメントの設定
SAMLログイン時にOktaからZUNDA IDへ送信するユーザー属性(姓・名・表示名)を設定します。この設定を行わないと、JITサインアップ時にZUNDA ID側でユーザー名を正しく取り込めません。
アプリの「一般」タブを開き、「属性ステートメント」セクションの「式を追加する」をクリックしてください
ここで設定する属性ステートメントは、ユーザーがSAMLログインした際にOktaからZUNDA IDへ送信されるユーザー情報(姓・名・表示名)のマッピング定義です。これにより、JITサインアップ時にZUNDA ID側へ正しくユーザー情報が連携されます。
以下の3つの属性(姓・名・表示名)を追加してください。「名前のフォーマット」はいずれも「URI Reference」を選択し、「名前」と「式」はZUNDA IDが期待するスキーマと一致させる必要があります。
-
名(givenname)
- 名前:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname - 式:
user.profile.firstName
- 名前:
-
姓(surname)
- 名前:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname - 式:
user.profile.lastName
- 名前:
-
表示名(name)
- 名前:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name - 式:
user.profile.displayName
- 名前:
すべての属性が追加されたことを確認してください。user.profile.displayNameはOktaのデフォルトプロファイルに含まれないことがあります。その場合は「Directory」→「Profile Editor」からOktaユーザーのプロファイルにdisplayName属性を追加するか、user.firstName + " " + user.lastNameのような式で代用してください。
テストをする
ここまでの設定が正しく行われているかを、SSOテスト機能で確認します。テストはOkta側へのユーザー割り当てが必要なため、事前にOkta Admin Consoleの「アサインメント」タブから、テスト実行者のアカウントを作成したアプリへ割り当てておいてください。
ZUNDA IDのOktaプロバイダー詳細画面より、「テスト」ボタンをクリックしてください
別ウィンドウ(またはタブ)でOktaのログイン画面が開きます。テスト実行者のアカウントでOktaへログインを完了させてください。SAMLログインに成功すると、以下のように「SSOログインテストに成功しました」と表示され、NameID・メールアドレス・姓・名のチェック結果が緑のチェックになっていれば設定完了です(表示名は任意項目のため、未設定の場合はZUNDA ID側で自動設定されます)
テストに失敗した場合は、以下を確認してください。
- Oktaのメタデータが正しくZUNDA IDにインポートされているか
- ZUNDA IDからダウンロードしたSP証明書がOkta側にアップロードされているか
- 属性ステートメント(givenname・surname・name)の「名前」と「式」が一致しているか
- テスト実行者のOktaアカウントが、作成したアプリに割り当てられているか
テストが完了したら、プロバイダー詳細画面に戻り「状態」を ON に切り替えることで、OktaによるSAMLログインが有効になります。状態をONにする前に、IdP Initiated loginを利用する場合はOkta側のアプリ設定(「サインオン」タブの「Application Username」やアサインメント)も意図どおりになっているかを再確認しておくと安全です。
| ログイン方法が利用できなくなった場合に備えて、ログイン方法のリカバリー設定の設定方法を事前に行っておくことを強く推奨します。設定完了後は作成したSAMLプロバイダーをログイン方法として利用する方法を参照し、ログイン方法として有効化してください。 |