1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OktaをIdPとしてAuth0にSAMLでログインする

Last updated at Posted at 2024-07-23

はじめに

Auth0を組み込んだアプリケーションへの認証でOktaを使ったSSOを設定する。Okta Workfowce Enterprise Connection もあるけど、こちらはOpenID Connectを使っていて、それがいけないわけではないが、今回はある事情でSAMLを使った設定をしたいと思う。

設定してみる

Okta設定

1. Applications > Applications から [Create App Integration] をクリック

Screenshot 2024-07-23 at 4.24.45 PM.png

2. SAML 2.0を選択して [Next] をクリック

Screenshot 2024-07-23 at 4.25.00 PM.png

3. アプリケーション名を入力して [Next] をクリック

Screenshot 2024-07-23 at 4.25.48 PM.png

4. SAMLの基本設定を入力

Generalの設定項目に以下の値を入力

Single Sign-On URL: https://{yourAuth0Domain}/login/callback?connection={yourAuth0ConnectionName}

Audience URI (SP Entity ID): urn:auth0:{yourAuth0TenantName}:{yourAuth0ConnectionName}

変数名 説明
{yourAuth0Domain} Auth0ドメイン(例 mytenant.us.auth0.comもしくはカスタムドメイン)
{yourAuth0ConnectionName} Auth0で作成したSAML Enterprise Connectionの名前

ということで、先にAuth0側で作成するEnterprise Connectionの名前を決めておきましょう。Oktaのorg名 にしておくとユニークな接続名として扱えて良いかも。

Screenshot 2024-07-23 at 5.25.11 PM.png

上記以外はデフォルトのままでOK

5. Attribute設定して [Next] をクリック

後でAuth0にマッピングするための情報を属性情報(Attribute)で指定
今回は基本的な情報のみだが、他にもDepartmentやTitle, primaryPhone等のプロファイル情報をマッピングすることも可能

Screenshot 2024-07-23 at 5.25.18 PM.png

Name Value 説明
FirstName user.firstName
LastName user.lastName
DisplayName user.displayName 表示名(名+姓)
Email user.email メールアドレス
ExternalId user.getInternalProperty("id") ユニークユーザーID(00xxXXxxxxXxxxXXxxxx のようなOktaの内部ユーザーID)

6. アプリケーションについてのFeedbackを入力

Screenshot 2024-07-23 at 5.38.45 PM.png

OIN (Okta Integration Network) に登録するわけではないので I'm an Okta customer adding an internal app および This is an internal app that we have created をチェックして [Finish]

7. ユーザーをアサイン

Screenshot 2024-07-23 at 6.31.12 PM.png

Assignmentsタブでアプリケーションを利用するユーザーもしくはグループをアサイン

8. [View SAML setup instructions] をクリック

Screenshot 2024-07-23 at 5.48.14 PM.png

9. [Download certificate] をクリックして証明書をダウンロード

Screenshot 2024-07-23 at 5.52.22 PM.png

後でAuth0の設定で使うので Identity Provider Single Sign-On URL も控えておこう

これでOkta側の設定はおしまい
続いてAuth0の設定をしよう

Auth0設定

1. Authentication > Enterprise から [SAML] を選択して新規作成

Screenshot 2024-07-23 at 4.26.50 PM.png

Screenshot 2024-07-23 at 5.45.01 PM.png

2. SAML接続設定を入力して [Create]

Screenshot 2024-07-23 at 6.13.43 PM.png

設定項目
Connection name Okta設定の際に予め決めておいた {yourAuth0ConnectionName} を指定
Sign In URL Okta設定No.9で取得した Identity Provider Single Sign-On URL を指定
X509 Signing Certificate Okta設定No.9でダウンロードした証明書をアップロード
EnableSign Out オフにする
User ID Attribute ExternalId
Sign Request Algorithm SHA-256
Sign Request Algorithm Digest SHA-256
Protocol Binding HTTP-POST

3. Login Experience設定

Screenshot 2024-07-23 at 6.16.42 PM.png

Home Realm Discovery にOktaを使ってログインするユーザーのメールアドレスドメインを入力

4. IdP-Initiated SSOを許可

Screenshot 2024-07-23 at 6.18.40 PM.png

デフォルトのアプリケーション名やプロトコルを指定

5. Mappings設定

Screenshot 2024-07-23 at 6.20.04 PM.png

OktaのAttributeとAuth0のユーザープロファイルマッピングを以下のJSON指定

{
  "name": "DisplayName",
  "email": "Email",
  "given_name": "FirstName",
  "family_name": "LastName"
}

6. 有効にするアプリケーションを指定

Screenshot 2024-07-23 at 6.23.05 PM.png

7. Authentication > Authentication Profile で [Identifier First] を指定

Screenshot 2024-07-23 at 6.25.30 PM.png

これを指定するとログインボックスでメールアドレスだけ先に入力してドメインからログイン方法を判別してOktaのログイン画面にリダイレクトする Home Realm Discovery が有効になる

以上でAuth0の設定は完了

実際にログインしてみる(SP-Initiated)

Auth0でのログイン画面でメールアドレスを入力すると...

Screenshot 2024-07-23 at 6.39.22 PM.png

Oktaログイン画面にリダイレクトされる

Screenshot 2024-07-23 at 8.50.54 PM.png

その後、ログイン成功(スクショ略)

ユーザーも作成されている

Screenshot 2024-07-23 at 8.29.25 PM.png

IdP-Initiatedもできるようになっているので、Oktaダッシュボードからアイコンクリックすればログインできるようになっているはず

おわり

ということで、多少設定項目は多いかもしれないけどそんなに難しくなくポチポチやっていけば設定できた。
反省点としては email_verifiedfalse になってしまうので、うまいこと true にするような設定を模索できればと思う。OktaからAttributeとして渡せればそれが一番だけど、どう設定すればいいかはこれから調べていこう。

参考にしたドキュメント

Connect Your App to SAML Identity Providers | Auth0

Configure Okta as SAML Identity Provider | Auth0

SAMLアプリ統合を作成する | Okta

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?