ライフサイクル ワークフローの属性を同期する方法
ワークフローには特定のタスクが含まれており、指定した実行条件に基づいてユーザーに対して自動的に実行できます。 自動ワークフローのスケジュールは、Microsoft Entra ID の employeeHireDate および employeeLeaveDateTime ユーザー属性に基づいてサポートされます。
ライフサイクル ワークフローを最大限に活用するには、ユーザー プロビジョニングを自動化し、スケジュール関連の属性を同期する必要があります。
スケジュール関連の属性
次の表では、スケジュール (トリガー) 関連の属性と、サポートされている同期の方法を示します。
属性 | Type | HR インバウンド プロビジョニングでのサポート | Microsoft Entra Connect クラウド同期でのサポート | Microsoft Entra Connect 同期でのサポート |
---|---|---|---|---|
employeeHireDate | DateTimeOffset | はい | イエス | はい |
employeeLeaveDateTime | DateTimeOffset | はい | イエス | はい |
Note
クラウド専用ユーザーに対して employeeLeaveDateTime を手動で設定するには、特別なアクセス許可が必要です。 詳細については、「ユーザーの employeeLeaveDateTime プロパティを構成する」を参照してください
このドキュメントでは、オンプレミスの Microsoft Entra Connect クラウド同期または Microsoft Entra Connect からの必要な属性の同期を設定する方法について説明します。
Note
Active Directory には、EmployeeHireDate または EmployeeLeaveDateTime に対応する属性はありません。 オンプレミスの AD から同期する場合は、AD で使用できる属性を確認する必要があります。 この属性は、文字列である必要があります。
EmployeeHireDate と EmployeeLeaveDateTime の書式設定について
EmployeeHireDate と EmployeeLeaveDateTime には、特定の方法で書式設定する必要がある日付と時刻が含まれます。 つまり、式を使って、ソース属性の値を EmployeeHireDate または EmployeeLeaveDateTime が受け入れる書式に変換する必要がある場合があります。 次の表では、想定される書式の概要を示し、値の変換方法に関する式の例を示します。
シナリオ | 式/書式 | 移行先 | 詳細情報 |
---|---|---|---|
Workday から Active Directory へのユーザー プロビジョニング | FormatDateTime([StatusHireDate], "yyyy-MM-ddzzz", "yyyyMMddHHmmss.fZ") | オンプレミスの AD の文字列属性 | Workday の属性マッピング |
Active Directory ユーザー プロビジョニングに対する SuccessFactors | FormatDateTime([endDate], ,"M/d/yyyy hh:mm:ss tt","yyyyMMddHHmmss.fZ") | オンプレミスの AD の文字列属性 | SAP Success Factors の属性マッピング |
Active Directory へのカスタム インポート | "yyyyMMddHHmmss.fZ" の形式である必要があります | オンプレミスの AD の文字列属性 | 他の記録システムの属性マッピング |
Microsoft Graph User API | "YYYY-MM-DDThh:mm:ssZ" の形式である必要があります | EmployeeHireDate と EmployeeLeaveDateTime | |
Workday からの Microsoft Entra へのユーザー プロビジョニング | 直接マッピングを使用できます。 式は必要ありませんが、EmployeeHireDate と EmployeeLeaveDateTime の時刻部分を調整するために使用できます | EmployeeHireDate と EmployeeLeaveDateTime | |
SuccessFactors から Microsoft Entra へのユーザー プロビジョニング | 直接マッピングを使用できます。 式は必要ありませんが、EmployeeHireDate と EmployeeLeaveDateTime の時刻部分を調整するために使用できます | EmployeeHireDate と EmployeeLeaveDateTime |
式の詳細については、「Microsoft Entra ID で属性マッピングの式を記述するためのリファレンス」を参照してください。
表の式の例では、SAP には endDate を、Workday には StatusHireDate を使用しています。 ただし、異なる属性を使うこともできます。
たとえば、StatusHireDate の代わりに StatusContinuousFirstDayOfWork を Workday に使用できます。 その場合、式は次のようになります。
FormatDateTime([StatusContinuousFirstDayOfWork], , "yyyy-MM-ddzzz", "yyyyMMddHHmmss.fZ")
次の表では、推奨される属性とそのシナリオの推奨事項の一覧を示します。
HR 属性 | HR システム | シナリオ | Microsoft Entra 属性 |
---|---|---|---|
StatusHireDate | Workday | 就職者 | EmployeeHireDate |
StatusContinuousFirstDayOfWork | Workday | 就職者 | EmployeeHireDate |
StatusDateEnteredWorkforce | Workday | 就職者 | EmployeeHireDate |
StatusOriginalHireDate | Workday | 就職者 | EmployeeHireDate |
StatusEndEmploymentDate | Workday | 退職者 | EmployeeLeaveDateTime |
StatusResignationDate | Workday | 退職者 | EmployeeLeaveDateTime |
StatusRetirementDate | Workday | 退職者 | EmployeeLeaveDateTime |
StatusTerminationDate | Workday | 退職者 | EmployeeLeaveDateTime |
startDate | SAP SF | 就職者 | EmployeeHireDate |
firstDateWorked | SAP SF | 就職者 | EmployeeHireDate |
lastDateWorked | SAP SF | 退職者 | EmployeeLeaveDateTime |
endDate | SAP SF | 退職者 | EmployeeLeaveDateTime |
他の属性については、Workday 属性リファレンスと SAP SuccessFactors 属性リファレンスに関する記事を参照してください。
時刻の重要性
ワークフローのタイミングを正確にスケジュールするには、以下を考慮することが重要です。
- 属性の時刻部分を適切に設定する必要があります。たとえば、
employeeHireDate
には午前 1 時や午前 5 時のような 1 日の開示時刻を設定し、employeeLeaveDateTime
には午後 9 時や午後 11 時のような 1 日の終了時刻を設定する必要があります - ワークフローが属性で指定された時刻より早く実行されることはありませんが、テナント スケジュール (既定は 3 時間) によってワークフローの実行が遅れる可能性があります。 たとえば、
employeeHireDate
を午前 8 時に設定しても、テナント スケジュールが午前 9 時まで実行されない場合、ワークフローはそれまで処理されません。 新入社員が午前 8 時に勤務を開始する場合は、時刻を (開始時刻 - テナント スケジュール) などのように設定して、従業員が到着する前に実行されるようにします。 - 一時アクセス パス (TAP) を使っている場合は、最大有効期間を 24 時間に設定することをお勧めします。 このようにすると、異なるタイムゾーンにいる可能性のある従業員に送信された後で TAP の有効期限が切れないようにすることができます。 詳しくは、「パスワードレスの認証方法を登録するように Microsoft Entra ID で一時アクセス パスを構成する」をご覧ください。
- データをインポートするときは、正確なタイミングにするためにユーザーが調整できるよう、ソースからタイム ゾーン情報が提供されるかどうか、およびその方法を、理解しておく必要があります。
Microsoft Entra Connect クラウド同期で EmployeeHireDate 用のカスタム同期ルールを作成する
次の手順では、クラウド同期を使用して同期ルールを作成する手順について説明します。
- Microsoft Entra 管理センターで、>[ハイブリッド管理]>[Microsoft Entra Connect] の順に移動します。
- [Microsoft Entra Connect クラウド同期の管理] を選択します。
- [構成] の下で、自分の構成を選択します。
- [クリックしてマッピングを編集] を選択します。 このリンクにより、 [属性マッピング] 画面が開きます。
- [属性の追加] を選択します。
- 次の情報を入力します。
- マッピングの種類: 直接
- ソース属性: msDS-cloudExtensionAttribute1
- 既定値: 空白のまま
- ターゲット属性: employeeHireDate
- このマッピングを適用する: 常時
- 適用を選択します。
- [属性マッピング] 画面に戻ると、新しい属性マッピングが表示されます。
- [スキーマの保存] を選択します。
属性の詳細については、「Microsoft Entra Connect クラウド同期の属性マッピング」を参照してください。
Microsoft Entra Connect で EmployeeHireDate 用のカスタム同期ルールを作成する方法
次の例では、Active Directory の属性を Microsoft Entra ID の employeeHireDate 属性に同期するカスタム同期ルールを設定する手順について説明します。
- 管理者として PowerShell ウィンドウを開き、
Set-ADSyncScheduler -SyncCycleEnabled $false
を実行してスケジューラを無効にします。 - Start\Microsoft Entra Connect\ に移動し、同期ルール エディターを開きます
- 上部の方向が [受信] に設定されていることを確認します。
- [ルールの追加] を選びます。
- [Create Inbound synchronization rule] (インバウンド同期ルールの作成) 画面で、次の情報を入力して、[次へ] を選びます。
- 名前: In from AD - EmployeeHireDate
- 接続先システム: contoso.com
- 接続先システム オブジェクトの種類: user
- メタバース オブジェクトの種類: person
- 優先順位: 20
- [Scoping filter] (スコープ フィルター) 画面で [次へ] を選びます。
- [Join rules] (参加ルール) 画面で [次へ] を選びます。
- [変換] 画面 の [Add transformations] (変換の追加) で、次の情報を入力します。
- FlowType: 直接
- ターゲット属性: employeeHireDate
- ソース: msDS-cloudExtensionAttribute1
- [追加] を選択します。
- 同期ルール エディターで、上部の方向が [送信] に設定されていることを確認します。
- [ルールの追加] を選びます。
- [Create Outbound synchronization rule] (アウトバウンド同期ルールの作成) 画面で、次の情報を入力して、[次へ] を選びます。
- 名前: Out to Microsoft Entra ID - EmployeeHireDate
- 接続先システム: <自分のテナント><>
- 接続先システム オブジェクトの種類: user
- メタバース オブジェクトの種類: person
- 優先順位: 21
- [Scoping filter] (スコープ フィルター) 画面で [次へ] を選びます。
- [Join rules] (参加ルール) 画面で [次へ] を選びます。
- [変換] 画面 の [Add transformations] (変換の追加) で、次の情報を入力します。
- FlowType: 直接
- ターゲット属性: employeeHireDate
- ソース: employeeHireDate
- [追加] を選択します。
- 同期ルール エディターを閉じます
Set-ADSyncScheduler -SyncCycleEnabled $true
を実行して、再度スケジューラを有効にします。
Note
- msDS-cloudExtensionAttribute1 はソースの例です。
- Microsoft Entra Connect 2.0.3.0 以降では、既定の "Out to Microsoft Entra ID" ルールに
employeeHireDate
が追加されるため、手順 10 から 16 は必要ありません。 - Microsoft Entra Connect 2.1.19.0 以降では、既定の "Out to Microsoft Entra ID" ルールに
employeeLeaveDateTime
が追加されるため、手順 10 から 16 は必要ありません。
詳しくは、「同期規則をカスタマイズする方法」と既定の構成の変更に関する記事をご覧ください。
プロビジョニング アプリケーションで属性マッピングを編集する
プロビジョニング アプリケーションを設定したら、その属性マッピングを編集できます。 アプリが作成されたら、HRM と Active Directory の間の既定のマッピングの一覧が表示されます。 その一覧で、既存のマッピングを編集したり、新しいマッピングを追加したりすることができます。
このマッピングを更新するには、次の操作を行います。
Microsoft Entra 管理センターにグローバル管理者としてサインインします。
[ID]>[アプリケーション]>[エンタープライズ アプリケーション] の順に移動します。
プロビジョニングされたアプリケーションを開きます。
[プロビジョニング] を選択し、[属性マッピングの編集] を選択します。
[詳細オプションの表示] を選択し、[オンプレミス Active Directory の属性リストの編集] を選択します。
String 型として作成した 1 つまたは複数のソース属性を追加し、必要に応じてチェックボックスをオンにします。
Note
追加されるソース属性の数と名前は、Active Directory から同期する属性によって異なります。
[保存] を選択します。
そこから、追加された Active Directory 属性に HRM 属性をマップする必要があります。 これを行うには、式を使用して新しいマッピングを追加します。
式は、「EmployeeHireDate と EmployeeLeaveDateTime の書式設定について」セクションにある書式と一致している必要があります。
[OK] を選択します。
Microsoft Entra ID でこれらの属性値を確認する方法
Microsoft Entra ID のユーザー オブジェクトについて、これらのプロパティに設定されている値を確認するには、Microsoft Graph PowerShell SDK を使用できます。 次に例を示します。
# Import Module
Import-Module Microsoft.Graph.Users
# Define the necessary scopes
$Scopes =@("User.Read.All", "User-LifeCycleInfo.Read.All")
# Connect using the scopes defined and select the Beta API Version
Connect-MgGraph -Scopes $Scopes
# Query a user, using its user ID, and return the desired properties
$user = Get-MgUser -UserID "00aa00aa-bb11-cc22-dd33-44ee44ee44ee" -Property EmployeeLeaveDateTime
$User.EmployeeLeaveDateTime