第4章 Microsoft Azure での認証


Microsoft Azure でユーザーを認証する場合:

4.1. Microsoft Azure での認証の有効化

Red Hat Developer Hub には、OAuth を使用してユーザーを認証できる Microsoft Azure 認証プロバイダーが組み込まれています。

前提条件

  1. Microsoft Azure にアプリケーションを登録する権限がある。

手順

  1. Developer Hub が Microsoft Azure で認証できるようにするために、Microsoft Azure で OAuth アプリケーションを作成 します。

    1. Azure ポータルで App registrations に移動し、次の設定で New registration を作成します。

      名前
      Azure 内のアプリケーション名 (例: <My Developer Hub>)
    2. Home > App registrations > <My Developer Hub> > Manage > Authentication ページで、次の設定で プラットフォームを追加 します。

      Redirect URI
      Developer Hub で設定されたバックエンド認証 URI (https://<my_developer_hub_url>/api/auth/microsoft/handler/frame) を入力します。
      Front-channel logout URL
      空白のままにします。
      Implicit grant and hybrid flows
      すべてのチェックボックスをオフのままにします。
    3. Home > App registrations > <My Developer Hub> > Manage > API permissions ページで、権限を追加 してから、Microsoft Graph API の次の 委任された権限 を追加します。

      • email
      • offline_access
      • openid
      • profile
      • User.Read
      • このセクションと Developer Hub 設定 (app-config-rhdh.yaml) の両方で定義する Microsoft Graph API のオプションのカスタムスコープ。

        注記

        企業によっては、これらの権限に対して管理者の同意を与えることが必要な場合があります。管理者の同意が必要ない場合でも、管理者の同意を与える場合があります。そうすることで、ユーザーが初めて Backstage にアクセスするときに、個別に同意する必要がなくなるためです。管理者の同意を付与するには、ディレクトリー管理者は admin consent ページに移動し、Grant admin consent for COMPANY NAME をクリックする必要があります。

    4. Home > App registrations > <My Developer Hub> > Manage > Certificates & Secrets ページの Client secrets タブで、新しいクライアントシークレット を作成します。
    5. 次のステップのために保存します。

      • ディレクトリー (テナント) ID
      • アプリケーション (クライアント) ID
      • アプリケーション (クライアント) シークレット
  2. Microsoft Azure 認証情報を Developer Hub に追加するには、以下のキーと値のペアを Developer Hub シークレット に追加します。

    AUTH_AZURE_TENANT_ID
    保存した ディレクトリー (テナント) ID を入力します。
    AUTH_AZURE_CLIENT_ID
    保存した アプリケーション (クライアント) ID を入力します。
    AUTH_AZURE_CLIENT_SECRET
    保存した アプリケーション (クライアント) シークレット を入力します。
  3. app-config-rhdh などの Developer Hub カスタム設定で Microsoft Azure 認証プロバイダーをセットアップします。

    app-config-rhdh.yaml の一部

    auth:
      environment: production
      providers:
        microsoft:
          production:
            clientId: ${AUTH_AZURE_CLIENT_ID}
            clientSecret: ${AUTH_AZURE_CLIENT_SECRET}
            tenantId: ${AUTH_AZURE_TENANT_ID}
    signInPage: microsoft

    environment: production
    環境を production とマークすると、Developer Hub のホームページで ゲスト ログインが非表示になります。
    clientIdclientSecrettenantId
    Microsoft Azure で作成し、OpenShift でシークレットとして設定した Developer Hub アプリケーション情報を使用します。
    signInPage: microsoft
    Microsoft Azure プロバイダーをデフォルトのサインインプロバイダーとして有効にします。

    オプション: 次のオプションフィールドを追加することを検討してください。

    dangerouslyAllowSignInWithoutUserInCatalog: true

    Developer Hub ソフトウェアカタログでユーザーをプロビジョニングする必要なく認証を有効にします。

    警告

    Developer Hub の機能を調べるには dangerouslyAllowSignInWithoutUserInCatalog を使用しますが、実稼働環境では使用しないでください。

    ソフトウェアカタログに存在しないユーザーを認証できるようにするオプションフィールドを含む app-config-rhdh.yaml フラグメント

    auth:
      environment: production
      providers:
        microsoft:
          production:
            clientId: ${AUTH_AZURE_CLIENT_ID}
            clientSecret: ${AUTH_AZURE_CLIENT_SECRET}
            tenantId: ${AUTH_AZURE_TENANT_ID}
    signInPage: microsoft
    dangerouslyAllowSignInWithoutUserInCatalog: true

    domainHint

    シングルテナントアプリケーションの場合は任意です。他のテナントのアカウントを自動的に除外することで、複数のテナントにアカウントを持つユーザーのログインの手間を軽減できます。このパラメーターをシングルテナントアプリケーションで使用する場合は、コメントを解除してテナント ID を入力します。アプリケーション登録がマルチテナントの場合は、このパラメーターを空白のままにします。詳細は、Home Realm Discovery を参照してください。

    オプションの domainHint フィールドを含む app-config-rhdh.yaml フラグメント

    auth:
      environment: production
      providers:
        microsoft:
          production:
            domainHint: ${AUTH_AZURE_TENANT_ID}

    additionalScopes

    追加のスコープの場合は任意です。アプリケーション登録のスコープを追加するには、コメントを解除して、追加するスコープのリストを入力します。デフォルトおよび必須の値のリストは 'openid', 'offline_access', 'profile', 'email', 'User.Read' です。

    オプションの additionalScopes フィールドを含む app-config-rhdh.yaml フラグメント

    auth:
      environment: production
      providers:
        microsoft:
          production:
            additionalScopes:
               - Mail.Send

注記

ファイアウォールルールなどの送信アクセス制限がある環境では、このステップはオプションになります。環境にこのような制限がある場合は、RHDH バックエンドが次のホストにアクセスできることを確認してください。

  • login.microsoftonline.com: 認可コードとアクセストークンを取得および交換します。
  • graph.microsoft.com: ユーザープロファイル情報を取得します (ソースコードで参照)。このホストにアクセスできない場合は、ログインしようとすると Authentication failed, failed to fetch user profile というエラーが表示されることがあります。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.