SAML ベースのシングルサインオン

SAML とは?

SAML(Security Assertion Markup Language)は、さまざまなシステムがユーザーの認証と承認について通信するのに役立つ標準規格です。主にシングルサインオン(SSO)に使用され、一度ログインすれば、再度認証情報を入力することなく複数のアプリケーションにアクセスすることができます。Kandjiでは、自動デバイス登録による認証の要求Kandji  Web アプリアクセスに SAML を使用できます。

SAMLのしくみ

SAML 設定には、次の 3 つのコンポーネントがあります。

  • IDプロバイダー(IdP) - このシステムは、あなたの身元を確認します。資格情報を確認し、この情報を使用するサービスと共有します。

  • サービス プロバイダー (SP) - これは、アクセスしようとしているアプリケーションまたはサービスです。IdP を信頼してユーザーの身元を確認し、その情報に基づいてユーザーを許可します。

  • SAML アサーション - これらは、IdP から SP への ID とアクセス権に関する情報を伝達するメッセージです。次の 3 つのタイプがあります。

    • 認証アサーション - 身元と認証方法を確認します。

    • 属性アサーション - 追加の詳細を共有します。

    • 認証決定アサーション - サービスにアクセスできるかどうかを示します。

SAML認証プロセスは、通常、次のように機能します。

  1. ユーザーによるアクセスの要求 - ユーザーは、サービス プロバイダー (この場合は Kandji) へのアクセスを試みます。

  2. SAML リクエストの生成 - Kandji は SAML 認証要求を生成し、ユーザーを IdP にリダイレクトします。

  3. ユーザー認証 - IdPは、通常、まだ認証されていない場合はログインを求めることでユーザーを認証します。

  4. SAMLレスポンスの作成と送信 - ユーザーが認証されると、IdPはSAMLアサーションを含むSAMLレスポンスを生成します。このアサーションには、ユーザーの ID やユーザーが持つ属性やロールなど、ユーザーに関する情報が含まれています。SAML レスポンスは、ユーザーのブラウザを介して Kandji に送り返されます。

  5. アサーション検証 - Kandji は SAML 応答を受信し、SAML アサーションを検証します。これには、デジタル署名をチェックして、信頼できるIdPからのものであることを確認することも含まれます。

  6. アクセスの許可 - アサーションが有効な場合、 KandjiKandji Web アプリケーションにログインするためのアクセス権をユーザーに付与します。または、自動デバイス登録中に登録するためのアクセス権をユーザーに付与します。

SAML 接続 の作成

次の手順では、汎用のカスタム SAML SSO 接続を作成する方法について説明します。IdP 固有のカスタム SAML 接続の作成の詳細については、次のサポート記事を参照してください。


  1. Kandjiで、[設定] ページに移動します。

  2. [アクセス] タブをクリックします。

  3. [認証 ]セクションを見つけて、認証セクションの左下にある[追加]ボタンをクリックします。

  4. [SSO 接続の追加] ウィンドウで、[ カスタム SAML ] オプションを選択します。

  5. 「次へ」をクリックします。

  6. [詳細を表示] を選択します。

  7. アサーション コンシューマ サービス URL をコピーし、後で使用するためにテキストドキュメントに保存します。

  8. エンティティID もコピーして保存します。

  9. このブラウザタブを開いたままにして、以下の手順に進みます。 

    SAML 接続の構成

    接続を作成すると、モーダルに次の設定オプションが表示されます。

    1. メタデータファイル

      • これは、サービスプロバイダーの詳細のメタデータファイルへのURLです。このメタデータ ファイルを ID プロバイダーに提供します (メタデータ ファイルをサポートしている場合)。このリンクは、接続ページを保存するまで有効になりません (ステップ 13)。

    2. 詳細

      • ID プロバイダがメタデータファイルをサポートしていない場合は、「詳細を表示」をクリックします。この記事の後半で説明する詳細セクションには、メタデータ ファイル内の情報が含まれています。

    3. 名前

      • 接続の表示名を指定します。これはログインページに表示されます。 

    4. サインイン URL

      • これは、ID プロバイダーによって提供されるアプリケーションのサインイン URL です。

    5. オプションのサインアウト URL

      • これは、ID プロバイダーの SLO URL (シングル ログアウト URL) です。 SLO を使用すると、 Kandji ユーザーが Kandjiからサインアウトしたときに、ID プロバイダーから自動的にサインアウトできます。この URL は、ID プロバイダーが SLO をサポートし、特に Kandjiで SLO をサポートするように設定されている場合にのみ入力してください。

    6. 署名証明書

      • ID プロバイダーから署名証明書の内容を X.509 PEM 形式で貼り付けます。この証明書は、受信 SAML 要求の有効性を評価するために使用されます。BEGIN CERTIFICATE と END CERTIFICATE のヘッダー/フッターを含む、証明書の全内容を貼り付けます。 

    7. ユーザー ID 属性

      • 既存の管理者との照合を試みる SAML 要求内の属性を指定します。通常、これは NAME ID URI (以下の例) を使用します。これは、ID プロバイダーが NAME ID 値のユーザーの電子メールを送信するように構成されている場合に該当します。それ以外の場合は、要求内で送信する予定の追加のカスタム属性と照合してください。

        http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier
    8. 署名リクエスト

      • サービスプロバイダー(Kandji)からIDプロバイダーへのリクエストに署名するかどうかを選択します。

    9. 署名要求アルゴリズム

      • ID プロバイダーに必要な署名アルゴリズムを選択します。 

    10. 署名要求アルゴリズム ダイジェスト

      • ID プロバイダーで必要とされる署名アルゴリズム ダイジェストを選択してください。 

    11. プロトコルバインディング

      • サービスプロバイダー(Kandji)は、リクエストをIDプロバイダー(通常はHTTP-Redirect)にどのように転送すべきかを設定してください。

    12. 保存

      • SAML 設定を保存します。 

必須の要求属性 

SAML リクエストには、次の属性が必須です。 NameID は、メール アドレスに一致する別の属性が指定されている限り、 Kandji 内では技術的に省略可能です。

クレームに姓属性と名属性がない場合、これらの値にはメールアドレスが使用されます。

属性 URI

必要な値

理由

NameID

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier

Kandji テナント内のチーム メンバーのメールと一致するユーザーのメール。

認証するユーザーを Kandjiに一致させる必要があります。

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname

ユーザーの姓。

ユーザーの姓を更新する必要があります。

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname

ユーザーの名。

ユーザーの名を更新する必要があります。

暗号化された SAML アサーション

暗号化された SAML アサーションは完全にサポートされています。必須ではありませんが、可能な限り ID プロバイダからのアサーションを暗号化することをお勧めします。これらのアサーションを暗号化すると、ソフトウェア (ブラウザ拡張機能など) が SAML アサーションから個人情報を収集するのを防ぐことができます。 

暗号化アルゴリズム

AES256_CBCKey

トランスポート アルゴリズム

RSA_OAEP

暗号化証明書

これはシングルログアウトに使用されるものと同じ公開鍵であり、詳細セクションまたは ここからダウンロードできます。 

シングルログアウト 

シングルログアウト操作に使用するURLは以下の通りです。HTTP-POST バインディングと HTTP-REDIRECT バインディングの両方がサポートされています。SP 発行者 ID はエンティティ ID と同じです。公開鍵は、詳細セクションまたは ここからダウンロードできます。 

SLO URL: https://auth.kandji.io/logout

詳細

ID プロバイダーがメタデータファイルを使用したサービスプロバイダーアプリケーションの構成をサポートしていない場合は、この情報を手動で入力してください。

  1. サービスプロバイダメタデータファイル: これは、サービスプロバイダの詳細のメタデータファイルへのURLです。このメタデータファイルを ID プロバイダーに提供してください (メタデータファイルをサポートしている場合)。

  2. ACS URL: SAML アサーションの送信先の URL。

  3. エンティティ ID: サービスプロバイダーのエンティティ ID (これは SLO 要求に使用される SP 発行者 ID でもあります)。 

  4. サービスプロバイダー署名証明書: この証明書は、サービスプロバイダーから ID プロバイダーへのリクエストに署名するために使用されます。この同じ証明書は、ID プロバイダーがサービス プロバイダーに送信される SAML アサーションを暗号化するように構成されている場合にも使用する必要があります。 

SAML 接続を有効にする

Kandji と ID プロバイダーで SAML 接続を構成したら、それを有効にすることができます。詳細な手順については、シングルサインオンのサポート記事の「接続の有効化と管理」セクションを参照してください。

シングルサインオンの強制

標準認証接続は、少なくとも 1 つのシングルサインオン接続を設定した後で無効にできます。 Kandji で標準認証を無効にすると、テナント内の Kandji 管理者がメール/パスワード、Google サインイン、または Office 365 サインインを使用して認証する機能が無効になります。詳しくは、 シングルサインオンのサポート記事 ステップバイステップの説明については。