この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Newer Version Available

This content describes an older version of this product. View Latest

AuthProviderPluginClass クラス

Salesforce へのシングルサインオン用に OAuth ベースのカスタム認証プロバイダプラグインを作成するためのメソッドが含まれます。Salesforce が提供するどの認証プロバイダも使用できない場合、このクラスを使用してカスタム認証プロバイダプラグインを作成します。

名前空間

Auth

使用方法

シングルサインオン用のカスタム認証プロバイダを作成するには、Auth.AuthProviderPluginClass を拡張するクラスを作成します。このクラスにより、認証プロバイダのカスタム設定を保存し、ユーザが外部サービスプロバイダのログイン情報を使用して Salesforce にログインしたときに認証プロトコルを処理できます。Salesforce で、このインターフェースを実装するクラスは、[設定] の [認証プロバイダ] にある [プロバイダタイプ] ドロップダウンリストに表示されます。クラスを実行するよう指定するユーザに「アプリケーションのカスタマイズ」権限と「認証プロバイダの管理」権限があることを確認します。

API バージョン 39.0 以降、カスタムの外部認証プロバイダを作成するには抽象クラス AuthProviderPluginClass を使用します。このクラスは AuthProviderPlugin インターフェースを置き換えます。インターフェースを使用してカスタム認証プロバイダプラグインをすでに実装している場合、その認証プロバイダは引き続き機能します。ただし、プラグインを拡張するには AuthProviderPluginClass を使用してください。インターフェースを作成していない場合は、この抽象クラスを拡張してカスタム認証プロバイダプラグインを作成します。設定は、「AuthProviderPluginClass コード例」を参照してください。

AuthProviderPluginClass のメソッド

AuthProviderPluginClass メソッドでは、DML オプションはサポートされません。

getCustomMetadataType()

Salesforce へのシングルサインオン用に OAuth ベースのカスタム認証プロバイダのカスタムメタデータ型 API 名を返します。

署名

public String getCustomMetadataType()

戻り値

型: String

認証プロバイダのカスタムメタデータ型 API 名。

使用方法

getCustomMetatadaType() メソッドは、カスタムメタデータ型の名前のみを返します。カスタムメタデータレコード名は返しません。API バージョン 39.0 以降、Auth.AuthProviderPluginClass を拡張してカスタムの外部認証プロバイダを作成する場合はこのメソッドを使用します。

getUserInfo(authProviderConfiguration, response)

カスタム認証プロバイダから現在のユーザに関する情報を返します。この情報は、登録ハンドラによって、他の認証プロバイダフローで使用されます。

署名

public Auth.UserData getUserInfo(Map<String,String> authProviderConfiguration, Auth.AuthProviderTokenResponse response)

パラメータ

authProviderConfiguration
型: Map<String, String>
カスタム認証プロバイダの設定。Salesforce にカスタムメタデータ型を作成すると、設定でカスタムメタデータ型のデフォルト値が入力されます。または、[設定] の [承認プロバイダ] でカスタムプロバイダを作成したときに入力した値を設定で指定することもできます。
response
型: Auth.AuthProviderTokenResponse

OAuth アクセストークン、OAuth の秘密または更新トークン、および現在のユーザを認証するために認証プロバイダによって指定された状態。

戻り値

型: Auth.UserData

Auth.UserData クラスの新しいインスタンスを作成します。

使用方法

API バージョン 39.0 以降、Auth.AuthProviderPluginClass を拡張してカスタム認証プロバイダを作成する場合はこのメソッドを使用します。

ユーザ情報を handleCallback メソッドからの応答で取得するか、別のメソッドによって取得するかを選択できます。ただし、オブジェクトの混在に関するエラーの発生を回避するには、カスタム認証ハンドラで引き続き getUserInfo を呼び出す必要があります。たとえば、getUserInfo をコールせずに Auth.RegistrationHandler.createUser メソッドに取引先責任者を挿入しようとすると、「You cannot mix EntityObjects with different UddInfos within one transaction (1 つのトランザクション内で EntityObjects と異なる UddInfos を混在させることはできません)」というエラーが表示されます。

このエラーを回避するには、次のようにダミーのユーザ情報を指定して getUserInfo をコールします。

メモ

handleCallback(authProviderConfiguration, callbackState)

認証プロバイダのサポート対象認証プロトコルを使用して、OAuth アクセストークン、OAuth の秘密または更新トークン、現在のユーザへの要求が開始されたときに渡された状態を返します。

署名

public Auth.AuthProviderTokenResponse handleCallback(Map<String,String> authProviderConfiguration, Auth.AuthProviderCallbackState callbackState)

パラメータ

authProviderConfiguration
型: Map<StringString>
カスタム認証プロバイダの設定。Salesforce にカスタムメタデータ型を作成すると、設定にカスタムメタデータ型のデフォルト値が入力されます。または、[設定] の [承認プロバイダ] でカスタムプロバイダを作成したときに入力した値を設定で指定することもできます。
callbackState
型: Auth.AuthProviderCallbackState
認証要求の HTTP ヘッダー、本文、および queryParams が含まれるクラス。

戻り値

型: Auth.AuthProviderTokenResponse

AuthProviderTokenResponse クラスのインスタンスを作成します。

使用方法

API バージョン 39.0 以降、Auth.AuthProviderPluginClass を拡張してカスタム認証プロバイダを作成する場合はこのメソッドを使用します。

initiate(authProviderConfiguration, stateToPropagate)

ユーザが認証のためにリダイレクトされる URL を返します。

署名

public System.PageReference initiate(Map<String,String> authProviderConfiguration, String stateToPropagate)

パラメータ

authProviderConfiguration
型: Map<StringString>
カスタム認証プロバイダの設定。Salesforce にカスタムメタデータ型を作成すると、設定にカスタムメタデータ型のデフォルト値が入力されます。または、[設定] の [承認プロバイダ] でカスタムプロバイダを作成したときに入力した値を設定で指定することもできます。
stateToPropagate
型: String
ユーザに対する認証要求を開始するために渡される状態。

戻り値

型: System.PageReference

ユーザが認証のためにリダイレクトされるページの URL。

使用方法

API バージョン 39.0 以降、Auth.AuthProviderPluginClass を拡張してカスタム認証プロバイダを作成する場合はこのメソッドを使用します。

refresh(authProviderConfiguration, refreshToken)

新しいアクセストークンを返します。これを使用して、有効期限の切れたアクセストークンを更新します。

署名

public Auth.OAuthRefreshResult refresh(Map<String,String> authProviderConfiguration, String refreshToken)

パラメータ

authProviderConfiguration
型: Map<String, String>
カスタム認証プロバイダの設定。Salesforce にカスタムメタデータ型を作成すると、設定にカスタムメタデータ型のデフォルト値が入力されます。または、[設定] の [承認プロバイダ] でカスタムプロバイダを作成したときに入力した値を設定で指定することもできます。
refreshToken
型: String
ログインしているユーザの更新トークン。

戻り値

型: Auth.OAuthRefreshResult

新しいアクセストークンを返すか、エラーが発生した場合はエラーメッセージを返します。

使用方法

要求が成功した場合、アクセストークンおよび更新トークンと共に Auth.OAuthRefreshResult を応答に返します。エラーを受け取った場合は、エラーメッセージにエラー文字列を必ず設定してください。NULL のエラー文字列はエラーがないことを示します。

この更新方法は指定ログイン情報でのみ機能します。標準の OAuth 更新フローに従いません。指定ログイン情報を使用する更新方法は、前の要求で 401 が返された場合にのみ機能します。

AuthProviderPluginClass コード例

次の例は、抽象クラス Auth.AuthProviderPluginClass を使用してカスタムの認証プロバイダプラグインを実装する方法を示しています。

サンプルテストクラス

次の例には、Concur のテストクラスが含まれています。