サポートアドバイザリ:Azure SAML サポート

このドキュメントでは、AppDynamics 製品のサポートアドバイザリについて説明します。

概要

4.5.16 の時点で、SAML Azure ユーザーはコントローラ権限を失う可能性があります。

影響を受けるソフトウェア

4.5.16 以降のコントローラへのログイン。

回避策

以下の手順を実行し、AppDynamics Azure 統合設定でデータ変換を適用します。

Azure とコントローラでの属性の設定

Azure とコントローラで属性を設定するには、以下の手順に従います。

Azure での属性の設定

SAML 応答に追加する属性の要求を追加します。以下の手順は、コントローラで SAML を使用するために必要な 3 つの属性を Azure に追加する方法を示しています。

  1. Azure から [User Attributes & Claims] ページに移動します。

  2. [Add new claim] をクリックします。

  3. 最初の属性はユーザー名の属性です。次の例では、属性は Username で、user.givennameuser.surname を結合する変換を通じて属性が形成されます。Azure は、コントローラの SAML 属性 Username Attribute にマッピングする SAML 応答に属性 Username を渡します。名前空間を使用している場合は、名前空間も属性 <namespace>/Username の一部になることに注意してください。

  4. 別の要求を作成して、表示名の属性を設定します。この例では、SAML 応答に渡され、コントローラの SAML 属性 Display Name Attribute にマッピングされる属性 DisplayName を設定します。
  5. 最後の属性では、要求を作成し、ユーザーの電子メールの属性を設定します。Azure には電子メール属性のプリセットの名前空間があるため、[追加の要求(Additional claims)] > [要求名(Claim name)] から http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress をクリックして自動的に電子メール属性を作成します。

  6. 次のように作成された要求が表示されます。[Name] フィールドはデフォルト値の emailaddress のままにします。

コントローラでの属性の設定

次の 3 つの方法のいずれかを使用して属性を設定します。

同じ属性を使用するコントローラ

  1. Azure で属性を設定したら、ローカル管理者としてコントローラにログインし、[Administration > Authentication Provider] に移動します。
  2. [SAML Attribute Mapping] セクションで、Azure のユーザー名について設定されている属性の値を [Username Attribute] フィールドに入力します。

  3. [Display Name Attribute] に、Azure の表示名について設定されている属性の値を入力します。

  4. 最後に、Azure の電子メールについて設定されている属性の値を [Display Name Attribute] に入力します。次のスクリーンショットの例は、前のセクションで設定した属性の例を含む [SAML Attribute Mappings] フィールドを示しています。[電子メール属性(Email Attribute)] フィールドには、名前空間と属性名 emailaddress が含まれていることに注意してください。

SAML 応答で属性を渡す

  1. SAML 応答で Name Id を渡し、その値を SamlAccountNameUPNemail などの一意の識別子として設定できます。
  2. コントローラで、[Username Attribute] フィールドを次のスクリーンショットのように空のままにします。NameId として email を渡す場合、AppDynamics はユーザー名のみを使用してユーザーを作成します。「@」以降はすべて無視されます。たとえば abc@xyz.com のような電子メールアドレスの場合、ユーザー名は abc として作成されます。ログイン後、ユーザーは SAML で [Role Mapping] セクションに行った設定に基づいてロールを取得します。

    注: ただし、ロールを手動で割り当てた場合は、ローカルユーザーとしてコントローラにログインし、ユーザーに権限を手動で付与する必要があります。新しく作成されたすべてのユーザーに対して行う必要があります。これにより、重複ユーザーが作成されることに注意してください。

コントローラでユーザー名属性を使用

コントローラの [Attribute] フィールドを、ユーザーを一意に識別する属性に設定します。例:SamlAccountNameUPNemail。このフィールドが設定されている場合、AppDynamics では SAML 応答からの NameId が考慮されないため、[Username Attribute] セクションで設定した内容がユーザー名として使用されます。ログインすると、ユーザーはコントローラの [SAML to Role Mapping] セクションの設定に基づいてロールを取得します。
注: ただし、ロールを手動で割り当てた場合は、ローカルユーザーとしてコントローラにログインし、ユーザーに権限を手動で付与する必要があります。新しく作成されたすべてのユーザーに対して行う必要があります。これにより、重複ユーザーが作成されることに注意してください。

REST API を使用した重複する SAML ユーザーの削除

以下の手順に従って、コントローラ REST API を使用して重複する SAML ユーザーを削除します。

ユーザー識別子の取得

  1. 次のいずれかのREST API メソッドを使用して、削除するユーザー識別子を取得します。
  2. (オンプレミスコントローラのみ)REST API でユーザー識別子を見つけることができない場合は、コントローラの MySQL データベースにクエリを送信できます。
    1. コントローラのホストマシンにログインします。
    2. <controller-install-dir>/bin. への変更
    3. 使用する OS に基づいて、次のコマンドを実行します。

      Linux
      ./controller.sh login-db
      Windows
      controller.bat login-db
    4. プロンプトが表示されたら、コントローラデータベースのルートユーザーパスワードを入力します。

    5. 以下の MySQL クエリを実行します。

      Select id, name from account.user where name like '%<name which you want to delete>%' and security_provider_type='SAML'
  3. (SaaS コントローラ)クライアントブラウザを使用してユーザー識別子を取得することもできます。
    1. Chrome または任意のブラウザを開き、コントローラにログインします。
    2. Developer Tool を開き、[Network] タブをクリックします。
    3. コントローラから、[Settings > Administration > Users] に移動します。
    4. users のネットワークコールを検索し、その応答を表示します。
    5. 応答からユーザーの ID を見つけ、以下に示すように「SAML」が securityProviderType の値であることを確認します。

重複ユーザーの削除

ユーザー識別子を取得したら、Delete User API を使用して、重複ユーザーを削除します。

次の cURL コマンドの例では、user1 をコントローラの管理者アクセス権を持っているユーザーに、customer1 を実際のアカウント名に、http[s] をコントローラが使用しているプロトコルに、localhost:8080 をコントローラのホストマシンのドメインとポートに、user-id を削除するユーザー識別子に置き換えます。

curl -X DELETE -u user1@customer1 http[s]://localhost:8080/controller/api/rbac/v1/users/<user-id>

解像度

Azure で以前発生した問題で、Azure を有効にするために特別なコードを挿入する必要があったため、この問題は修復されません。Azure はこの問題を修正し、AppDynamics は Azure を他の SAML プロバイダーと同じように扱うことができるようになりました。残念ながら、これにより、既存のユーザーは既存のコントローラアカウントと権限から「切断」されます。

既存のお客様の場合、ユーザーの継続性を確保するために、AppDynamics の Azure SAML 設定に変換を適用する必要があります。これらの変更が適用されると、ユーザーは AppDynamics に中断なくアクセスできるようになります。

マニュアルの変更履歴

  • 2020 年 2 月 3 日、v1(本アドバイザリの初版)