ID プロバイダに接続する

このページでは、Google Distributed Cloud(GDC)エアギャップを組織の既存の ID プロバイダ(IdP)に接続する方法について説明します。IdP は、ユーザー ID を一元的に管理して保護し、認証サービスを提供するシステムです。既存の IdP を接続すると、ユーザーは GDC 内で個別の アカウントを作成または管理することなく、組織の認証情報を使用して GDC にアクセスできます。このプロセスにより、シームレスで安全なログイン エクスペリエンスが実現します。IdP はグローバル リソースであるため、ユーザーは作業するゾーンに関係なく、同じ IdP を介して GDC にアクセスできます。

このページは、IdP に接続するプラットフォーム管理者グループ(IT 管理者やセキュリティ エンジニアなど)のユーザーを対象としています。詳細については、 GDC エアギャップ ドキュメントの対象読者をご覧ください。

次のいずれかを使用して、既存の ID プロバイダに接続できます。

始める前に

既存の ID プロバイダに接続する前に、初期設定が完了していること、必要な権限をリクエストしていること、環境を準備していることを確認する必要があります。

ID プロバイダの初期接続の設定

ユーザーが GDC クラスタまたはダッシュボードにアクセスするには、組織のインフラストラクチャ オペレーター グループのメンバーが IdP の初期接続を構成する必要があります。

これを行うには、チケット発行システム でチケットを開き、必要な ID プロバイダ情報を提供します。詳細については、 顧客 ID プロバイダを組織に接続するをご覧ください。

IAM ロールをリクエストする

ID プロバイダ構成を作成、読み取り、更新、削除するには、組織 IAM 管理者に連絡して IdP 連携管理者 (idp-federation-admin)ロールをリクエストしてください。

ID プロバイダを接続するときに指定する最初の管理者に、組織 IAM 管理者 (organization-iam-admin)ロールがあることを確認してください。

環境を準備する

既存の ID プロバイダに接続する

ID プロバイダを接続するには、ID プロバイダのクライアント ID とシークレットが 1 つ必要です。既存の OIDCプロバイダまたは SAMLプロバイダに接続できます。

既存の OIDC プロバイダに接続する

既存の OIDC プロバイダに接続する手順は次のとおりです。

コンソール

  1. GDC コンソールにログインします。次の例は、 org-1という組織にログインした後のコンソールを示しています。 一般的なタスクへのクイック アクセス リンクが表示されたコンソールのウェルカム ページ
  2. ナビゲーション メニューで、[Identity and Access] > [Identity] をクリックします。
  3. [Add Identity Provider] をクリックします。
  4. [Configure identity provider] セクションで、次の操作を行います。

    1. [Identity provider] プルダウン メニューで、[Open ID Connect(OIDC)] を選択します。
    2. ID プロバイダ名 を入力します。
    3. [Issuer URI] フィールドに、ID プロバイダに認可リクエストが送信される URL を入力します。Kubernetes API サーバーは、この URL を使用してトークン検証用の公開鍵を検出します。 URL には HTTPS を使用する必要があります。
    4. [Client ID] フィールドに、ID プロバイダへの認証リクエストを行うクライアント アプリケーションの ID を入力します。
    5. [Client Secret] フィールドに、クライアント シークレットを入力します。これは、ID プロバイダと Distributed Cloud の間で共有されるシークレットです。
    6. 省略可: [Identity provider prefix] フィールドに接頭辞を入力します。 接頭辞は、ユーザー クレームとグループ クレームの先頭に追加されます。 接頭辞は、異なる ID プロバイダ構成を区別するために使用されます。たとえば、接頭辞を myidp に設定すると、ユーザー クレームは myidp-username@example.com、グループ クレームは myidp-group@example.com になります。ロールベースのアクセス制御(RBAC)権限をグループに割り当てるときは、接頭辞も含める必要があります。

    7. 省略可: [Encryption] セクションで、[Enable encryption tokens] を選択します。

      暗号化トークンを有効にするには、組織 IAM 管理者に IdP 連携管理者(idp-federation-admin)ロールの付与を依頼してください。

      1. [Key ID] フィールドに、鍵 ID を入力します。鍵 ID は、JSON ウェブ暗号化(JWE)トークンの公開鍵を識別します。OIDC プロバイダは、鍵 ID を設定してプロビジョニングします。
      2. [Decryption key] フィールドに、復号鍵を PEM 形式で入力します。復号鍵は、トークンの復号に使用される非対称鍵です。OIDC プロバイダは、復号鍵を設定してプロビジョニングします。
    8. [次へ] をクリックします。

  5. [Configure attributes] セクションで、次の操作を行います。

    1. [Certificate authority for OIDC provider] フィールドに、ID プロバイダの base64 エンコード PEM エンコード証明書を入力します。 詳細については、 Wikipedia の Privacy-Enhanced Mail をご覧ください。
      1. 文字列を作成するには、ヘッダーを含めた証明書を base64 でエンコードします。
      2. 結果の文字列は 1 行に含めます。 例: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==
    2. [Group Claim] フィールドに、ユーザーのグループ情報を保持する ID プロバイダ トークンのクレームの名前を入力します。
    3. [User Claim] フィールドに、各ユーザーを識別するクレームを入力します。多くのプロバイダのデフォルトのクレームは sub です。ID プロバイダによっては、email や name などの他のクレームを選択できます。名前が競合しないように、email 以外のクレームには、発行元の URL が先頭に付加されます。
    4. 省略可: [Custom attributes] セクションで [Add Pair] をクリックし、部署やプロフィール写真の URL など、ユーザーに関する追加のクレームの Key-Value ペアを入力します。
    5. ID プロバイダに追加のスコープが必要な場合は、[Scopes] フィールドに、ID プロバイダに送信するカンマ区切りのスコープを入力します。
    6. [Extra parameters] セクションに、ID プロバイダに必要な追加の Key-Value ペア(カンマ区切り)を入力します。 グループを承認する場合は、resource=token-groups-claim を渡します。
    7. [次へ] をクリックします。
  6. [Specify initial admins] セクションで、次の操作を行います。

    1. 個々のユーザーまたはグループを最初の管理者として追加するかどうかを選択します。
    2. [Username or group alias] フィールドに、組織にアクセスするユーザーまたはグループのメールアドレスを入力します。管理者の場合は、自分のメールアドレス(kiran@example.com など)を入力します。接頭辞はユーザー名の前に追加されます(myidp-kiran@example.com など)。
    3. [次へ] をクリックします。
  7. 選択内容を確認し、[Setup] をクリックします。

新しい ID プロバイダ プロファイルが [Identity profiles] リストに表示されます。

API

ID プロバイダを組織に接続するには、グローバル IdentityProviderConfig カスタム リソースを作成します。

  1. IdentityProviderConfig カスタム リソース YAML ファイル(pa-idp-oidc.yaml など)を作成します。

    apiVersion: iam.global.gdc.goog/v1
    kind: IdentityProviderConfig
    metadata:
      name: pa-idp-oidc
      namespace: platform
    spec:
      oidc:
        certificateAuthorityData: "IDP_BASE64_ENCODED_CERTIFICATE"
        clientID: IDP_CLIENT_ID
        clientSecret: IDP_CLIENT_SECRET
        groupPrefix: IDP_GROUP_PREFIX
        groupsClaim: IDP_GROUP_CLAIM
        issuerURI: IDP_ISSUER_URI
        scopes: openid,email,profile
        userClaim: IDP_USER_CLAIM
        userPrefix: IDP_USER_PREFIX
    

    次の変数を置き換えます。

    • IDP_BASE64_ENCODED_CERTIFICATE: IdP の base64 エンコード証明書。
    • IDP_CLIENT_ID: IdP のクライアント ID。
    • IDP_CLIENT_SECRET: IdP のクライアント シークレット。
    • IDP_GROUP_PREFIX: IdP のグループの接頭辞。
    • IDP_GROUP_CLAIM: グループ情報を保持する IdP トークンのクレームの名前。
    • IDP_ISSUER_URI: IdP の発行者 URI。
    • IDP_USER_CLAIM: ユーザーの IdP トークンのクレームの名前。
    • IDP_USER_PREFIX: ユーザー IdP の接頭辞。
  2. IdentityProviderConfig カスタム リソースをグローバル API サーバーに適用します。

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f pa-idp-oidc.yaml
    

    GLOBAL_API_SERVER_KUBECONFIG 変数を、グローバル API サーバーの kubeconfig ファイルへのパスに置き換えます。

既存の SAML プロバイダに接続する

既存の SAML プロバイダに接続する手順は次のとおりです。

コンソール

  1. GDC コンソールにログインします。次の例は、 org-1という組織にログインした後のコンソールを示しています。 一般的なタスクへのクイック アクセス リンクが表示されたコンソールのウェルカム ページ
  2. ナビゲーション メニューで、[Identity and Access] > [Identity] をクリックします。
  3. [Add Identity Provider] をクリックします。
  4. [Configure identity provider] セクションで、次の操作を行います。

    1. [Identity provider] プルダウン メニューで、[Security Assertion Markup Language(SAML)] を選択します。
    2. ID プロバイダ名 を入力します。
    3. [Identity ID] フィールドに、ID プロバイダへの認証リクエストを行うクライアント アプリケーションの ID を入力します。
    4. [SSO URI] フィールドに、プロバイダのシングル サインオン エンドポイントの URL を入力します。例: https://www.idp.com/saml/sso。
    5. [Identity provider prefix] フィールドに接頭辞を入力します。接頭辞は、ユーザー クレームとグループ クレームの先頭に追加されます。接頭辞は、異なる ID プロバイダ構成を区別します。例: 接頭辞を myidp に設定すると、ユーザー クレームは myidp-username@example.com、グループ クレームは myidp-group@example.com になります。RBAC 権限をグループに割り当てるときは、接頭辞も含める必要があります。

    6. セキュリティを強化するには、有効期間が 5 ~ 10 分のアサーションを発行するように SAML プロバイダを構成します。この設定は、SAML プロバイダの設定で構成できます。

    7. 省略可: [SAML Assertions] セクションで、[Enable encryption SAML assertions] を選択します。

      暗号化された SAML アサーションを有効にするには、組織 IAM 管理者に IdP 連携管理者(idp-federation-admin)ロールの付与を依頼してください。

      1. [Encryption assertion certificate] フィールドに、暗号化証明書を PEM 形式で入力します。暗号化証明書は SAML プロバイダから取得します。
      2. [Encryption assertion key] フィールドに、秘密鍵を入力します。 復号鍵は、SAML プロバイダを生成した後に受け取ります。
    8. 省略可: [SAML Signed Requests] セクションで、[Enable signed SAML requests] を選択します。

      1. [Signing certificate] フィールドに、署名証明書を PEM ファイル形式で入力します。署名証明書は SAML プロバイダから発行されます。
      2. [Signing key] フィールドに、署名鍵を PEM ファイル形式で入力します。署名鍵は SAML プロバイダによって設定され、生成されます。
    9. [次へ] をクリックします。

  5. [Configure attributes] ページで、次の操作を行います。

    1. [IDP certificate] フィールドに、ID プロバイダの base64 エンコード PEM エンコード証明書を入力します。 詳細については、 Wikipedia の Privacy-Enhanced Mail をご覧ください。
      1. 文字列を作成するには、ヘッダーを含めた証明書を base64 でエンコードします。
      2. 結果の文字列は に 1 行で含めます。例: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==。
    2. [Additional IDP certificate] フィールドに追加の証明書を入力します。
    3. [User attribute] フィールドに、各ユーザーを識別する属性を入力します。多くのプロバイダのデフォルトの属性は sub です。ID プロバイダによっては、email や name などの他の属性を選択できます。名前が競合しないように、email 以外の属性には、発行元の URL が先頭に付加されます。
    4. [Group attribute] フィールドに、ユーザーのグループ情報を保持する ID プロバイダ トークンの属性の名前を入力します。
    5. 省略可: [Attribute mapping] セクションで [Add Pair] をクリックし、部署やプロフィール写真の URL など、ユーザーに関する追加の属性の Key-Value ペアを入力します。
    6. [次へ] をクリックします。
  6. [Specify initial admins] セクションで、次の操作を行います。

    1. 個々のユーザーまたはグループを最初の管理者として追加するかどうかを選択します。
    2. [Username or group alias] フィールドに、組織にアクセスするユーザーまたはグループのメールアドレスを入力します。管理者の場合は、自分のメールアドレス(kiran@example.com など)を入力します。接頭辞はユーザー名の前に追加されます(myidp-kiran@example.com など)。
    3. [次へ] をクリックします。
  7. [Review] ページで、続行する前に各 ID 構成のすべての値を確認します。

    [Back] をクリックして前のページに戻り、必要な修正を行います。

  8. [Setup] をクリックします。

新しい ID プロバイダ プロファイルが [Identity profiles] リストに表示されます。

API

ID プロバイダを組織に接続するには、グローバル IdentityProviderConfig カスタム リソースを作成します。

  1. IdentityProviderConfig カスタム リソース YAML ファイル(pa-idp-saml.yaml など)を作成します。

    apiVersion: iam.global.gdc.goog/v1
    kind: IdentityProviderConfig
    metadata:
      name: pa-idp-saml
      namespace: platform
    spec:
      saml:
        groupPrefix: IDP_GROUP_PREFIX
        groupsAttribute: IDP_GROUP_ATTRIBUTE
        idpCertificateDataList:
        - "IDP_BASE64_ENCODED_CERTIFICATE"
        idpEntityID: IDP_SAML_ENTITY_ID
        idpSingleSignOnURI: IDP_SAML_SSO_URI
        userAttribute: IDP_USER_ATTRIBUTE
        userPrefix: IDP_USER_PREFIX
    

    次の変数を置き換えます。

    • IDP_GROUP_PREFIX: IdP のグループの接頭辞。
    • IDP_GROUP_ATTRIBUTE: IdP のグループの属性。
    • IDP_BASE64_ENCODED_CERTIFICATE: IdP の base64 エンコード証明書。
    • IDP_SAML_ENTITY_ID: IdP を一意に識別する URL または URI。
    • IDP_SAML_SSO_URI: IdP の発行者 URI。
    • IDP_USER_ATTRIBUTE: IdP ユーザーの属性(メールなど)。
    • IDP_USER_PREFIX: ユーザーの IdP トークンのクレームの名前。
  2. IdentityProviderConfig カスタム リソースをグローバル API サーバーに適用します。

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f pa-idp-saml.yaml
    

    GLOBAL_API_SERVER_KUBECONFIG 変数を、グローバル API サーバーの kubeconfig ファイルへのパスに置き換えます。

既存の ID プロバイダを削除する

GDC コンソールを使用して、既存の ID プロバイダを削除します。

  1. GDC コンソールにログインします。
  2. プロジェクト セレクタで、ID プロバイダを削除する組織を選択します。
  3. ナビゲーション メニューで、[Identity and Access] > [Identity] をクリックします。
  4. 1 つ以上の ID プロバイダの名前の横にあるチェックボックスをオンにします。

    選択した ID プロバイダの数と [削除] ボタンが表示されます。

  5. [削除] をクリックします。