第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.All
      • GroupMember.Read.All
      • Microsoft Graph API のオプションのカスタムスコープ。これは、このセクションと Developer Hub 設定ファイル app-config.yaml の両方で定義します。

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

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

    • ディレクトリー (テナント) ID
    • アプリケーション (クライアント) ID
    • アプリケーション (クライアント) シークレット

      1. Microsoft Azure 認証情報を Developer Hub に追加するには、以下のキーと値のペアを Developer Hub シークレット に追加します。

        AUTH_AZURE_TENANT_ID
        保存した ディレクトリー (テナント) ID を入力します。
        AUTH_AZURE_CLIENT_ID
        保存した アプリケーション (クライアント) ID を入力します。
        AUTH_AZURE_CLIENT_SECRET
        保存した アプリケーション (クライアント) シークレット を入力します。
      2. app-config.yaml ファイルで Microsoft Azure 認証プロバイダーを設定します。

        app-config.yaml ファイルのフラグメント

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

        1
        環境を実稼働環境としてマークし、Developer Hub のログインページで Guest ログインオプションを無効にします。
        2
        Developer Hub のシークレットに設定されている Microsoft Azure 認証情報を適用します。
        3
        Microsoft Azure プロバイダーを Developer Hub サインインプロバイダーとして設定します。
  3. オプション: 次のオプションフィールドを追加することを検討してください。

    domainHint

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

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

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

    additionalScopes

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

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

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

    sessionDuration

    ユーザーセッションの有効期間。期間は、ms ライブラリー形式 ('24h'、'2 days' など)、ISO の期間、またはコード内で使用される "人間が判読可能な期間" で入力します。

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

    auth:
      providers:
        microsoft:
          production:
            sessionDuration: { hours: 24 }

    signIn
    resolvers
    認証が成功したら、サインインするユーザーを、Developer Hub カタログ内の既存のユーザーに解決する必要があります。ユースケースに合わせて最適な形でユーザーを確実にマッチさせるために、特定のリゾルバーを設定することを検討してください。デフォルトのリゾルバー emailLocalPartMatchingUserEntityName をオーバーライドするには、リゾルバーのリストを入力します。

    認証プロバイダーは、成功するまで各サインインリゾルバーを順番に試行します。どれも成功しない場合は失敗します。

    警告

    実稼働モードでは、ユーザーが確実にマッチするように、リゾルバーを 1 つだけ設定してください。

    resolver

    サインインリゾルバー名を入力します。利用可能なリゾルバーは次のとおりです。

    • userIdMatchingUserEntityAnnotation
    • emailLocalPartMatchingUserEntityName
    • emailMatchingUserEntityProfileEmail
    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}
            signIn:
              resolvers:
                - resolver: usernameMatchingUserEntityName
                  dangerouslyAllowSignInWithoutUserInCatalog: true
    signInPage: microsoft

注記

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

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

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る