
IdPテナントの作成
SAML IdPとして機能するセカンダリAuth0テナントがまだない場合は、作成する必要があります。-
[Auth0 Dashboard]に移動し、テナント名を選択して [Create Tenant(テナントの作成)] を選択します。
- [Domain(ドメイン)] を入力し、 [Region(リージョン)] を選択して、 [Create(作成)] をクリックします。
IdPテナントの構成
セカンダリテナントをIdPとして構成し、SPテナントを表すアプリケーションを登録します。- IdPテナントに切り替えます。テナントメニューを開き、 [Switch Tenant(テナントの切り替え)] を選択して、IdPテナントを選択します。
- [Dashboard]>[Applications(アプリケーション)]>[Applications(アプリケーション)]に移動して、 [Create Application(アプリケーションの作成)] を選択します。
- アプリケーションの名前
(my-auth0-idpなど)
を入力し、アプリケーションのタイプとして [Regular Web Application(通常のWebアプリケーション)] を選択して、 [Create(作成)] を選択します。 - [Settings(設定)] ページの下までに移動し、 [Show Advanced Settings(詳細設定を表示)] を選択します。
- [Certificates(証明書)] ビューに切り替え、 [Download Certificate(証明書のダウンロード)] を選択し、 [PEM] を選択します。証明書がダウンロードされます。この証明書は、SPテナントを構成するときに使用します。
- [Endpoints(エンドポイント)] ビューに切り替えて、 [SAML Protocol(SAML プロトコル)]URL を見つけて、その内容をコピーします。このURLは、SPテナントを構成するときに使用します。
SAMLシーケンスをテストするユーザーを作成
- [Dashboard]>[User Management(ユーザー管理)]>[Users(ユーザー)]に移動し、 [Create User(ユーザーの作成)] を選択します。
- テストユーザーのメールアドレスを入力します。ドメイン名は、次に設定するサービス プロバイダー テナントのメール ドメインと一致する必要があります。たとえば、ユーザーが
john.doe@exampleco.com
の場合、メール ドメインにはexampleco.com
と入力する必要があります。 - テストユーザーのパスワードを入力します。
- [Connection(接続)] にはデフォルト値を使用します。
- [Create(作成)] を選択します。
サービス プロバイダー テナントの構成
SAMLプロトコルを使用してSSOのIdPテナントと通信するようにSPテナントを構成します。- SPテナントに切り替えます。テナントメニューを開き、 [Switch Tenant(テナントの切り替え)] を選択して、SPテナントを選択します。
- [Dashboard]>[Authentication(認証)]>[Enterprise(エンタープライズ)]に移動し、 [SAML] を選択します。
- [Create Connection(接続を作成する)] を選択します。
-
以下の情報を入力して、 [Create(作成)] を選択します。
設定 説明 Connection Name(接続名) SAML-Auth0-IDP
などの名前を入力します。Sign In URL(サインインURL) 上でコピーしたSAMLプロトコルのURLの値を入力します。 Sign Out URL(サインアウトURL) 上のサインインURLと同じURLを入力します。 X509 Signing Certificate(X509署名証明書) 赤の [UPLOAD CERTIFICATE…(証明書のアップロード)] ボタンをクリックし、上でダウンロードした .pem
ファイルを選択します。 - [Setup(セットアップ)] ビューに切り替えて、テナントに関連付けられているメタデータを表示します。URLをコピーして保存します。
-
新しいブラウザータブを開き、前にコピーしたURLに移動します。(Auth0 Docsサイトにログインしている場合は、設定に正しい値が事前に入力されます。)
- [Entity ID(エンティティID)] を見つけ、その内容をコピーして保存します。次のようになります。
urn:auth0:{yourTenant}:{yourConnectionName}
.{yourConnectionName}
を、IdP テナント用に作成した接続の名前に置き換えます。 - メタデータ を見つけて、提供されているURLをコピーして保存します。次のようになります。
https://{yourDomain}/samlp/metadata?connection={yourConnectionName}
.{yourConnectionName}
を、IdP テナント用に作成した接続の名前に置き換えます。 - 以前にコピーしたURLに移動して、SP テナント内のこの接続のメタデータを表示します。または、ブラウザーからメタデータファイルを保存するように求められる場合があります。
- AssertionConsumerService で始まる行を見つけて、 [Location(場所)] フィールドの値をコピーして保存します。これは次の形式のURLになります。
https://{yourDomain}/login/callback?connection={yourConnectionName}
.これは、IdPテナントからSAMLアサーションを受信するSPテナント上のURLです。次のセクションでは、このURLを IdP テナントに提供して、SAMLアサーションの送信先を認識できるようにします。
- [Entity ID(エンティティID)] を見つけ、その内容をコピーして保存します。次のようになります。
サービス プロバイダー メタデータをIdPに追加
SPテナントに関する情報をIdPテナントに追加して、SAML認証要求の受信方法と応答方法を認識できるようにします。- IdPテナントに切り替えます。テナントメニューを開き、 [Switch Tenant(テナントの切り替え)] を選択して、IdPテナントを選択します。
- [Dashboard]>[Applications(アプリケーション)]>[Applications(アプリケーション)]に移動し、以前に作成したIdPアプリケーションの名前を選択して表示します。
- [Addons(アドオン)] ビューに切り替えます。
- [SAML2 Web App(SAML2 Webアプリ)] を選択してそのオプションを表示し、 [Application Callback(アプリケーションコールバック)URL] を見つけます。以前にコピーした AssertionConsumerServiceURL を貼り付けます。
- [Settings(設定)] コードブロックで、
[audience(オーディエンス)]
ユーザーキーを見つけてコメントを解除し、行の末尾のコンマを削除して、元の値(urn:foo
)を前にコピーした [Entity ID(エンティティID値)] (サービスプロバイダーテナントを構成したときに手順4で作成した接続名を含む)に置き換えます。新しい行は次のようになります。「オーディエンス」:「urn:auth0:{yourTenant}:{yourConnectionName}」
。 - [Enabled(有効)] を選択します。
IdPのテスト
- 同じウィンドウで上にスクロールし、 Debug[(デバッグ)] を選択します。ログイン画面が表示されます。
- 上で作成したテストユーザーの資格情報を使用してログインします。構成が正しい場合は、「成功しました!」と、IdP に送信されるエンコードおよびデコードされたSAML応答が表示されます。
- デコードされた SAML 応答を確認し、
<saml:Audience>
を見つけて、前の画面で入力した [Entity ID(エンティティ ID)] と一致していることを確認します。 - [Close this window(このウィンドウを閉じる)] を選択します。
SAML接続をテストするためのアプリケーションの作成
作成したSAML接続をテストするための簡単なアプリケーションを作成します。- SPテナントに切り替えます。テナントメニューを開き、 [Switch Tenant(テナントの切り替え)] を選択して、SPテナントを選択します。
- [Dashboard]>[Applications(アプリケーション)]>[Applications(アプリケーション)]に移動して、 [Create Application(アプリケーションの作成)] を選択します。
- アプリケーション名を入力し、アプリケーション タイプとして [Regular Web Application(通常のWebアプリケーション)] を選択してから、 [Create(作成)] を選択します。
- [Domain(ドメイン)] と [Client ID(クライアントID)] の値をコピーして保存します。
- [Allowed Callback URL(許可されているコールバックURL)] フィールドを見つけて、
http://jwt.io
と入力します。これは、認証後にユーザーがリダイレクトされる許可されたコールバックURLのリストです。ここに入力するURLは、次の手順で作成するHTMLコード内のコールバックURLと一致する必要があります。通常は、アプリケーションのURLを入力しますが、この例を簡単にするために、テストユーザーはAuth0 JWTオンラインツールに送信されます。このツールは、認証シーケンスの最後に返されるJSON Webトークン (JWT) に関する情報を提供します。 - [Save Changes(変更の保存)] を選択します。
- [(接続)] ビューに切り替えて、 [Enterprise(エンタープライズ)] セクションで作成したSAML接続を見つけて有効にします。
サービスとIDプロバイダー間の接続をテストします
SPテナントとIdPテナント間のSAML構成が機能していることを確認するためにテストします。- [Dashboard]>[Authentication(認証)]>[Enterprise(エンタープライズ)]に移動し、 [SAML] を選択します。
- 作成した SAML 接続を見つけて、 [Try(試す)] 矢印アイコンを選択します。この接続のテスト中にログインしたことがあるので、「成功しました!」画面に直接送信されます。ログイン画面が表示されたら、テストユーザーの資格情報を使用してログインします。
テスト アプリケーション用のWebページを作成
SAMLログインシーケンスをトリガーするLockウィジェットを呼び出す簡単なWebページを作成します。-
HTMLページを作成し、次のHTMLとJavaScriptコードを挿入します。
{yourClientId}
と{yourDomain}
を、上記で登録したアプリケーションの実際の値に置き換えます。(これらの値をメモしていない場合は、SPテナントの [Application Settings(アプリケーションの設定)] で確認できます。) -
また、
[audience(オーディエンス)]
をアプリケーションの適切な値に置き換えることもできますが、このテストの目的では、プレースホルダーで十分です。[audience(オーディエンス)]
パラメーターを指定する場合は、Auth0で構成した既存のAPIの識別子と一致することを確認してください。 - HTMLファイルを、ブラウザーからアクセスできる場所に保存します。
アプリケーションをテスト
SPテナントで作成したAuth0 SAML接続を使用してIdPテナントに対してSSO認証を実行するサンプルHTMLアプリケーションをテストします。- 上記で作成したHTMLファイルをブラウザーで開きます。ログイン ボタンが表示されます。
- [Login(ログイン)] をクリックします。1つのオプションがあるロックウィジェットが表示されます。アプリケーションに対して他の接続が有効になっている場合は、画面が異なる場合があります。電子メールアドレスの入力を求められた場合は、入力した電子メールアドレスが、最初のテナントのアプリケーションの [Settings(設定)] ビューで入力したドメインと同じドメイン名であることを確認します。
- 青いボタンをクリックします。このボタンには、 saml または [ACCESS(アクセス)] と表示されている場合があります。資格情報の入力を求められるか、すぐにコールバックURLにリダイレクトされるかは、アクティブなセッションがまだあるかどうかによって異なります。
テストシナリオのトラブルシューティング
- テストの前に、毎回ブラウザーの履歴とクッキーを消去します。そうしないと、ブラウザーがHTMLページの最新バージョンを取得できないか、実行に影響する古いクッキーが残っている可能性があります。
-
インタラクションのHTTPトレースをキャプチャします。多くのツールは、分析のためにブラウザーからHTTPトラフィックをキャプチャします。
- インターネットで「HTTP トレース」を検索して、ツールを見つけてインストールします。
- ログインシーケンスを最初から最後までキャプチャし、トレースを分析します。GETのシーケンスを追跡して、予想されるシーケンスのどこまで取得したかを確認します。元のサイトからSPテナント、次にIdPテナントへのリダイレクト、ログインする必要がある場合は資格情報のPOST、コールバックURLまたは SP テナントへのリダイレクト、そしてアプリケーションで指定された コールバックURL へのリダイレクトが表示されます。
- ブラウザーでクッキーとJavaScriptが有効になっていることを確認してください。
- HTML ファイルで指定された コールバックURL が、アプリケーションの [Allowed Callback URLs(許可されたコールバック URL)] フィールドにもリストされていることを確認します。これを行うには、[Dashboard]>[Applications(アプリケーション)]>[Applications(アプリケーション)]に移動し、アプリケーションの名前を選択して、 [Allowed Callback URLs(許可されたコールバック URL)] を見つけます。
- http://samltool.ioツールを使用してSAMLアサーションをデコードします。