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 プロバイダから 1 つのクライアント ID とシークレットを取得する必要があります。既存の OIDC プロバイダまたは SAML プロバイダに接続できます。

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

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

コンソール

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

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

    7. 省略可: [暗号化] セクションで、[暗号化トークンを有効にする] を選択します。

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

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

  5. [属性を構成する] セクションで、次の操作を行います。

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

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

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

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. [ID プロバイダを構成する] セクションで、次の操作を行います。

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

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

    7. 省略可: [SAML アサーション] セクションで、[暗号化 SAML アサーションを有効にする] を選択します。

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

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

      1. [署名証明書] フィールドに、PEM ファイル形式の署名証明書を入力します。SAML プロバイダが署名証明書を発行します。
      2. [署名鍵] フィールドに、PEM ファイル形式の署名鍵を入力します。SAML プロバイダが署名鍵を設定して生成します。
    9. [次へ] をクリックします。

  5. [属性の構成] ページで、次の操作を行います。

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

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

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

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

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

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. [削除] をクリックします。