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

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 のテストクラスが含まれています。