FHIR 用にローカル RBAC を構成する

この記事では、データ アクセスにセカンダリ Azure Active Directory (Azure AD) テナントを使用するように Azure API for FHIR を構成する方法について説明します。 このモードは、サブスクリプションに関連付けられている Azure AD テナントを使用できない場合にのみ使用します。

注意

サブスクリプションに関連付けられているプライマリ Azure AD テナントを使用するように FHIR サービスが構成されている場合は、 Azure RBAC を使用してデータ プレーン ロールを割り当てます

新しいサービス プリンシパルを追加するか、既存のサービス プリンシパルを使用する

ローカル RBAC を使用すると、セカンダリ Azure AD テナントのサービス プリンシパルを FHIR サーバーと共に使用できます。 Azure portal、PowerShell、または CLI コマンドを使用して新しいサービス プリンシパルを作成することも、既存のサービス プリンシパルを使用することもできます。 このプロセスは、 アプリケーション登録とも呼ばれます。 ポータルまたはスクリプトを使用して、Azure AD を使用してサービス プリンシパルを確認および変更できます。

以下の PowerShell および CLI スクリプトは、Visual Studio Code でテストおよび検証され、新しいサービス プリンシパル (またはクライアント アプリケーション) を作成し、クライアント シークレットを追加します。 サービス プリンシパル ID はローカル RBAC に使用され、アプリケーション ID とクライアント シークレットは後で FHIR サービスにアクセスするために使用されます。

PowerShell モジュールを Az 使用できます。

$appname="xxx"
$sp= New-AzADServicePrincipal -DisplayName $appname
$clientappid=sp.ApplicationId
$spid=$sp.Id
#Get client secret which is not visible from the portal
$clientsecret=ConvertFrom-SecureString -SecureString $sp.Secret -AsPlainText

または、Azure CLI を使用することもできます。

appname=xxx
clientappid=$(az ad app create --display-name $appname --query appId --output tsv)
spid=$(az ad sp create --id $appid --query objectId --output tsv)
#Add client secret with expiration. The default is one year.
clientsecretname=mycert2
clientsecretduration=2
clientsecret=$(az ad app credential reset --id $appid --append --credential-description $clientsecretname --years $clientsecretduration --query password --output tsv)

ローカル RBAC を構成する

[認証] ブレードでセカンダリ Azure Active Directory テナントを使用するように Azure API for FHIR を構成できます。

ローカル RBAC の割り当て

機関ボックスに、有効なセカンダリ Azure Active Directory テナントを入力します。 テナントが検証されたら、[ 許可されたオブジェクト ID ] ボックスをアクティブ化し、Azure AD サービス プリンシパル オブジェクト ID の 1 つまたは一覧を入力できます。 これらの ID には、次の ID オブジェクト ID を指定できます。

  • Azure Active Directory ユーザー。
  • Azure Active Directory サービス プリンシパル。
  • Azure Active Directory セキュリティ グループ。

詳細については、ID オブジェクト ID を検索する方法に関する記事を参照してください。

必要な Azure AD オブジェクト ID を入力したら、[ 保存] を選択し、変更が保存されるまで待ってから、割り当てられたユーザー、サービス プリンシパル、またはグループを使用してデータ プレーンにアクセスします。 オブジェクト ID には、"FHIR データ共同作成者" ロールに相当するすべてのアクセス許可が付与されます。

ローカル RBAC 設定は、認証ブレードからのみ表示されます。Access Control (IAM) ブレードからは表示されません。

注意

RBAC またはローカル RBAC では、1 つのテナントのみがサポートされます。 ローカル RBAC 関数を無効にするには、サブスクリプションに関連付けられている有効なテナント (またはプライマリ テナント) に戻し、[許可されたオブジェクト ID] ボックスですべての Azure AD オブジェクト ID を削除します。

キャッシュ動作

Azure API for FHIR では、決定事項が最大 5 分間キャッシュされます。 許可されたオブジェクト ID の一覧にユーザーを追加することによって FHIR サーバーへのアクセス権を付与する場合、または一覧から削除する場合は、アクセス許可の変更が反映されるまで最大 5 分かかることが予想されます。

次のステップ

この記事では、外部 (セカンダリ) の Azure Active Directory テナントを使用して FHIR データ プレーンのアクセス権を割り当てる方法について説明しました。 次に、Azure API for FHIR の追加設定について説明します。

FHIR® は HL7 の登録商標であり、HL7 の許可を得て使用しています。