SAMLアプリ統合を作成する
SAML統合では、連携認証標準を使用して、エンド・ユーザーがSAMLアプリにワンクリックでアクセスできるようにします。App Integration Wizard(AIW)により、SAMLリクエストに必要なXMLが生成されます。
開始する前に
アプリ統合でのインライン指示の問題を回避するには、ブラウザーの設定を開き、常にクッキーを使用できるサイトのリストにOktaを追加します。「サードパーティクッキーを許可する」を参照してください。
タスク1:ウィザードの起動
- Okta Admin Consoleで、[Applications(アプリケーション)]>[Applications(アプリケーション)]に移動します。
- [Create App Integration(アプリ統合の作成)]をクリックします。
- [Sign on methods(サインオン方法)]として[SAML 2.0]を選択します。
- [Next(次へ)]をクリックします。
タスク2:一般設定を構成する
- [App name(アプリ名)]:UTF-8の3バイト文字を使用して統合の名前を指定します。
- [App logo(アプリのロゴ)]:任意。Okta orgの統合に使用するロゴを追加します。ロゴのファイルはPNG、JPG、GIF形式のいずれかで、1MB未満である必要があります。背景が透明で横向きのPNG画像を使用すると、最適な効果を得られます。アップスケールを防ぐために、420 x 120ピクセル以上の解像度を使用してください。
- [App visibility(アプリの可視性)]:統合をエンド・ユーザーのホーム・ページで非表示にするかどうかを選択します。つまり、エンドユーザー・デバイスのOkta Mobile Apps Storeで統合を非表示にするかどうかを選択します。
タスク3:SAML設定を構成する
SAML 2.0構成では、orgと対象アプリを結び付けた情報が必要です。各フィールドの入力に関するヘルプは、アプリ固有のドキュメントとOktaツールのヒントで確認できます。
- [Single sign on URL(シングル・サインオンURL)]:POST操作でSAMLアサーションが送信される宛先。このURLは必須であり、サービス・プロバイダー(SP)のデフォルトのAssertion Consumer Service(ACS)URL値として機能します。IDプロバイダー(IdP)は、サインオンリクエストを開始するときに、このURLを常に使用します。
- [Use this for Recipient URL and Destination URL(受信者のURLおよび移動先URLに使用)]:受信者のURLと移動先URLを同じものにする場合、このチェックボックスをオンにします。
- [Recipient URL(受信者のURL)]:(前述のチェックボックスがオフの場合に表示されます。)アプリケーションでSAMLアサーションを提示する場所。これは通常、シングルサインオン(SSO)URLです。
- [Destination URL(宛先URL)]:(前述のチェックボックスがオフの場合に表示されます。)SAMLアサーションの一部としてSAMLレスポンスを送信する宛先。アプリケーションで具体的な値を明示的に指定していない限り、これは[Single sign on URL(シングルサインオンURL)]と同じものにする必要があります。
- [Use this for Recipient URL and Destination URL(受信者のURLおよび移動先URLに使用)]:受信者のURLと移動先URLを同じものにする場合、このチェックボックスをオンにします。
- [Audience URI (SP Entity ID)(対象URI(SPエンティティID))]:SAMLアサーションの対象オーディエンス。これは通常、アプリケーションのエンティティIDです。
- [Default RelayState(デフォルトのRelayState)]:SAMLを使用してSPへのサインインが成功した後にユーザーが移動するページ。有効なURLを指定する必要があります。詳細については、SPのドキュメントを参照してください。
- [Name ID format(名前IDフォーマット)]:SAMLレスポンスで送信するユーザー名のフォーマット。使用する形式についてはSPのドキュメントを参照してください。アプリケーションで形式が明示的に指定されていない場合は、デフォルト値([Unspecified(指定なし)])を使用してください。
- [Application username(アプリケーションのユーザー名)]:アプリケーションのユーザー名に使用するデフォルト値。
-
詳細設定を表示
- [Response(応答)]:[Signed(署名済み)]または[Unsigned(未署名)]を選択して、SAML認証の応答メッセージにIdPによるデジタル署名を行うかどうかを指定します。
- [Assertion Signature(アサーション署名)]:[Signed(署名済み)]または[Unsigned(未署名)]を選択して、SAMLアサーションにデジタル署名を行うかどうかを指定します。
- [Signature Algorithm(署名アルゴリズム)]:SAMLアサーションおよび応答にデジタル署名するために使用される署名アルゴリズムを決定します。
- [Digest Algorithm(ダイジェストアルゴリズム)]:SAMLアサーションおよび応答にデジタル署名するために使用されるダイジェストアルゴリズムを決定します。
- [Assertion Encryption(アサーション暗号化)]:SAMLアサーションを暗号化するかどうかを指定します。
[Assertion Encryption(アサーション暗号化)]設定で[Encrypted(暗号化する)]を選択すると、次の3つのオプションが表示されます。
- [Encryption Algorithm(暗号化アルゴリズム)]:SAMLアサーションの暗号化に使用する暗号化アルゴリズムを選択します。
- [Key Transport Algorithm(キー転送アルゴリズム)]:SAMLアサーションの暗号化に使用するキー転送アルゴリズムを選択します。
- [Encryption Certificate(暗号化証明書)]:SAMLアサーションの暗号化に使用する公開鍵証明書を参照して[Upload Certificate(証明書をアップロード)]をクリックし、証明書をアップロードします。
証明書ファイルの拡張子は.cerである必要があります。
-
[Signature Certificate(署名証明書)]:SAMLサインインリクエストとシングルログアウト(SLO)リクエストを検証するために必要な公開鍵証明書をアップロードします。[Browse files...(ファイルを参照...)]をクリックし、[Open(開く)]をクリックして、ローカルシステムから証明書をアップロードします。[Enable Single Logout(シングルログアウトの有効化)]および[Signed Requests(署名付きリクエスト)]のチェックボックスをオンにするには、署名証明書が必要です。
- [Enable Single Logout(シングルログアウトを有効化)]:ユーザーが構成済みカスタムアプリとOktaの両方からシングルクリックでサインアウトできます(ただし、開いているその他のアプリからはログアウトできません)。『Profiles for the OASIS Security Mark Up Language (SAML) version 2.0』の「Single Logout Profile」のセクションを参照してください。
[Enable Single Logout(シングルログアウトを有効化)]を指定すると、次のオプションを利用できます。
[Single Logout URL(シングルログアウトURL)]:サインアウトレスポンスの送信先を指定します。
- [SP Issuer(SP発行者)]:サービスプロバイダーの発行者ID。
SLOが有効になっている場合は、アプリのSAMLセットアップ手順に[Identity Provider Single Logout URL(IDプロバイダーのシングルログアウトURL)]のフィールドを含める必要があります。
-
[Signed Requests(署名付きリクエスト)]:[Signature Certificate(署名証明書)]を使用してすべてのSAMLリクエストを検証します。SAMLリクエストからのペイロードが検証され、Oktaがリクエストからシングルサインオン(SSO)URLを動的に読み取ります。
-
[Other Requestable SSO URLs(その他のリクエスト可能なSSO URL)]:SP起点のサインインフローでの使用を目的としています。アプリの統合で使用されるその他のリクエスト可能なSSOノードのACS URLを入力します。このオプションにより、アプリケーションのSAMLレスポンスの送信先を選択できます。各ACS URLエンドポイントを一意に識別するURLおよびインデックスを指定します。
SAML AuthnRequestメッセージにインデックスまたはURLが指定されていない場合、SAMLレスポンスは、[Single sign on URL(シングルサインオンURL)]フィールドで指定したデフォルトのACS URLに送信されます。
[Signed Requests(署名付きリクエスト)]を有効にすると、Oktaは以前に定義された静的SSO URLを削除し、代わりに署名付きSAMLリクエストからSSO URLを読み取ります。静的SSO URLと動的SSO URLの両方を指定することはできません。
-
[Assertion Inline Hook(アサーションインラインフック)]:アサーションインラインフックは、作成した外部サービスへのOktaからのアウトバウンドコールです。Oktaが認証リクエストに応じてSAMLアサーションを生成すると、このタイプのインラインフックがトリガーされます。SAMLアサーションを処理するアプリに送信する前に、Oktaは外部サービスを呼び出します。外部サービスは、アサーションに属性を追加したり、既存の属性を変更したりするコマンドで応答できます。
Oktaで外部サービスを呼び出すには、ドロップダウンリストからサービスのエンドポイントを選択します。このオプションが[None (disabled)(なし(無効))]に設定されたままの場合、アサーションインラインフックがトリガーされたときに外部サービスは呼び出されません。「インラインフック」、「SAMLアサーションインラインフックリファレンス」、および「SAMLアサーションインラインフックの有効化」を参照してください。
- [Authentication context class(認証コンテキストクラス)]:認証制限のタイプを示します。通常はデフォルトのPasswordProtectedTransportを設定します。詳細については、SPのドキュメントを参照してください。
- 任意。[Honor Force Authentication(強制認証に準拠)]:[Yes(はい)]が選択されていると、SAMLリクエストのForceAuthn属性がtrueに設定されている場合、ユーザーは、Oktaにサインイン済みであっても資格情報の入力を求められます。デスクトップSSOによって正常にサインインしたユーザーも、資格情報を入力する必要があります。このオプションが[No(いいえ)]に設定されている場合、この属性は無視されます。
- 任意。[SAML Issuer ID(SAML発行者ID)]:発行者IDを上書きする必要がある場合にこのオプションを使用します。1つのアプリケーションで複数のサインインを行う場合、上書きが必要です。このオプションは、追加の属性を必要とする統合がある場合にも使用できます。デフォルト値のhttp://www.okta.com/$(org.externalKey)を上書きする発行者IDを入力します。[External Key(外部キー)]は、現在動作しているアプリケーションインスタンスの設定手順から取得します。
- [Attribute Statements (option)(属性ステートメント(オプション))]:SAML統合を作成したり、既存の統合を変更したりする場合、カスタム属性ステートメントを定義できます。これらのステートメントは、アプリと共有するSAMLアサーションに挿入されます。
属性ステートメントを定義する
[Attribute Statements (option)(属性ステートメント(オプション))]セクションの各SAMLアサーションには、次の要素があります。
- [Name(名前)]:アプリケーションが必要とする属性の参照名。このフィールドの最大文字数は512文字です。Name属性は、ユーザーとグループの属性ステートメント全体で一意である必要があります。
- [Name Format(名前のフォーマット)]:アプリケーションに[Name(名前)]属性を付与するときの形式。次の形式を使用できます。
- [Unspecified(指定なし)]:Oktaプロファイルで定義している任意の形式を使用できます。ただし、アプリケーションが解釈できる必要があります。
- [URI Reference(URI参照)]:名前をUniform Resource Identifierの文字列で指定します。
- [Basic(基本)]:単純な文字列。その他の形式が指定されていない場合のデフォルト設定。
- [Value(値)]:[Name(名前)]要素で定義する属性の値。Okta式言語を使用したカスタム式を作成して、Oktaユーザープロファイルの値を参照できます。このフィールドの最大文字数は1024文字です。
- [Add Another(別途追加)]をクリックすると、ステートメント行を追加できます。
- 必要な属性定義が完了するまでこの手順を繰り返します。
属性ステートメントを追加してSAML統合を作成したら、プロファイルエディタを使用してプロファイルを更新する必要があります。
プロファイルエディタ
- Okta Admin Consoleで、[Directory(ディレクトリ)]>[Profile Editor(プロファイルエディター)]に進みます。作成した統合を見つけて、[Profile(プロファイル)]をクリックします。
- [Attributes(属性)]画面が開くので、[Add Attribute(属性を追加)]をクリックします。
- 新しい属性を追加して、[Save(保存)]をクリックします。
- Okta Admin Consoleで、[Applications(アプリケーション)]>[Applications(アプリケーション)]に移動します。アプリ名をクリックします。
- 開いた画面で、[General(一般)]タブをクリックします。次に、[SAML Settings(SAML設定)]セクションの[Edit(編集)]をクリックします。
- 開いた画面で、[Next(次へ)]をクリックします。
- [Attribute Statements (Optional)(属性ステートメント(オプション))]セクションに、手順3で作成した属性の名前を入力します。この値はドロップダウンボックスに自動的に入力されません。[Value(値)]に、「appuser」、ピリオド、属性名の順で入力します。たとえば、属性の名前がNewRoleの場合、Valueはappuser.NewRoleになります。
- 完了したら、[Next(次へ)]をクリックします。
- [Applications(アプリケーション)]ページで統合の名前をクリックしてから、[Assignments(割り当て)]タブをクリックします。[Assign(割り当て)]をクリックして、[Assign to Groups(グループに割り当て)]を選択します。そのウィンドウで、グループの右側にある[Assign(割り当て)]をクリックします。これらの割り当てはSAMLトレーサーで検証できます。
- [Group Attribute Statements (optional)(グループ属性ステートメント(オプション))]:Okta orgでグループを使用してユーザーを分類している場合、アプリと共有するSAMLアサーションにグループ属性ステートメントを追加できます。
グループ属性ステートメントを定義する
[Group Attribute Statements (optional)(グループ属性ステートメント(オプション))]セクションで次の操作を行います。
- SAMLアプリで使用するグループ属性の[Name(名前)]を入力します。
- [Name Format(名前のフォーマット)]を選択します。
- 式のフィルタリングオプションを選択します:[Starts with(次から開始)]、[Equals(次と等しい)]、[Contains(次を含む)]、[Matches regex(次の正規表現に一致)]
- Oktaの [GroupName]値との照合に使用し、SAMLアサーションに追加する式を入力します。
- [Add Another(別途追加)]をクリックすると、グループステートメント行を追加できます。
- 必要なグループ定義が完了するまでこの手順を繰り返します。
- [< > Preview the SAML Assertion(< > SAMLアサーションのプレビュー)]をクリックすると、SAMLアプリウィザードの[Configure SAML(SAMLを構成)]セクションで生成したXMLを表示できます。
セキュリティを維持するには、エンドユーザーが編集可能なフィールドを使用しないでください。
動的SAML機能では、Okta式言語による属性ステートメントの入力方法や処理方法は変更されません。この機能により、SAML属性ステートメントをOkta Integration Network内のアプリで処理できるようになります。以前は、App Integration Wizardを使用して作成されたアプリでのみ属性ステートメントを使用できました。
タスク4:フィードバックを構成する
社内でのご利用のみを目的として統合を追加するOktaのお客様は、次の操作を行ってください。
- [I'm an Okta customer adding an internal app(社内アプリを追加するOktaユーザーです)]を選択します。
- [This is an internal app that we have created(これは当社で作成した社内アプリです)]を選択します。SAMLの構成指示を追加してアプリをOktaと連携させる必要がある場合は、[It's required to contact the vendor to enable SAML(SAMLを有効にするには、ベンダーに問い合わせる必要があります)]を選択します。Oktaサポートチームがお客様のSAML構成を把握できるように、表示されているフィールドに必要な情報をご入力ください。
- [Finish(終了)]をクリックします。Okta orgに統合が作成されます。
- 統合の[Settings(設定)]ページが表示されます。ここでは、任意のパラメーターを修正して、統合をユーザーに割り当てることができます。
お客様が自社の統合をOkta Integration Network(OIN)に追加する独立系ソフトウェアベンダーの場合、次の操作を行ってください。
- [I'm a software vendor. I'd like to integrate my app with Okta(ソフトウェアベンダーです。自社のアプリをOktaと統合したいと考えています)]を選択します。
- [Finish(終了)]をクリックします。Okta orgに統合が作成されます。
- 統合の[Settings(設定)]ページが表示されます。ここでは、任意のパラメーターを変更して、統合をユーザーに割り当てることができます。
- すべての設定を適切に行ったことを確認し、予備テストを完了したら、[Submit your app for review(アプリを送信してレビューを依頼)]をクリックします。OINマネージャーのサイトが開き、OIN送信プロセスが開始されます。
タスク5:署名証明書を管理する
SAMLアプリ統合を作成すると、[Sign On(サインオン)]タブに[SAML Signing Certificates(SAML署名証明書)]セクションが表示されます。ここでは、SSOの署名付きSAMLアサーションを検証し、信頼できるIDプロバイダーとしてOktaを指定できるように、アプリ統合を構成する必要があります。
利用可能な証明書が2つ表示される場合があります。その場合、1つはアクティブでもう1つは非アクティブであることにご注意ください、アクティブな証明書はアプリ統合のみを対象にしていますが、非アクティブな証明書はorg全体を対象にしています。アプリのみを対象とする証明書をアクティブのままにしておくことをお勧めします。オプションで、新しい証明書を生成してアクティブ化できます。
SAMLアプリに必要な設定を完了するには、次の手順を実行します。
- [Active(アクティブ)]にする証明書の[Status(ステータス)]を設定します。
アクティブでない場合は[Actions(アクション)]メニューの[Activate(アクティベート)]で別の証明書を選択するか、[Generate new certificate(新しい証明書を生成)]をクリックして新しい証明書をアクティブにします。
-
[SAML Setup(SAMLの設定)]で、[View SAML setup instructions(SAMLの設定手順を表示)]をクリックします。
-
アプリケーションに応じて、次のいずれかを行います。
- IdP設定をコピーして証明書をダウンロードする
- アプリケーションがIdPメタデータを処理できる場合は、それらのデータをすべてコピーする
次の手順を実行するまでSSO構成は完了しません。
次の手順
統合が想定どおりに動作しない場合は、Oktaサポートにお問い合わせください。