암호 동기화 어댑터를 ENTSSO 시스템으로 초기화합니다.
문법
HRESULT InitializeAdapter(
BSTR strAdapterName,
ULONG lFlags,
ULONGLONG* hNotifyEvent,
GUID* guidTrackingId);
매개 변수
bstrAdapterName
[in] 고유한 어댑터 이름입니다.
ulFlags
[in] SSO_NOTIFICATION_FLAG 값의 비트 조합입니다.
phNotifyEvent
[out] 이 메서드가 반환되면 PS 도우미에서 만든 이벤트 핸들이 포함됩니다. MIDL은 HANDLE 데이터 형식을 지원하지 않으므로 반환 시 반환 값을 HANDLE로 캐스팅해야 합니다. 어댑터에서 이벤트 핸들이 필요하지 않은 경우 이 매개 변수는 NULL일 수 있습니다.
pguidTrackingId
[out] 이 메서드가 반환될 때 ENTSSO에서 생성된 추적 ID를 포함합니다. 추적 ID는 감사 목적으로 사용됩니다. 어댑터에서 추적 ID가 필요하지 않은 경우 이 매개 변수는 NULL일 수 있습니다.
반환 값
이 메서드는 올바르게 완료되었는지 여부를 나타내는 HRESULT를 반환합니다. 자세한 내용은 오류 값 섹션을 참조하세요.
오류 값
이 메서드는 다음 표의 값 중 하나를 포함하는 HRESULT를 반환합니다.
| 가치 | 설명 |
|---|---|
| S_OK | 초기화에 성공했습니다. |
| S_false | 초기화는 성공했지만 다시 연결되었습니다. 자세한 내용은 설명 섹션을 참조하세요. |
| E_ACCESSDENIED | 액세스가 거부되었습니다. |
| ENTSSO_E_NO_SERVER | ENTSSO 서버에 연결할 수 없습니다. ENTSSO 서비스가 실행 중인지 확인합니다. |
비고
InitializeAdapter를 호출하기 전에 관련 어댑터 이름을 ENTSSO에 입력해야 합니다.
InitializeAdapter를 호출하기 전에 다른 ISSONotification 메서드를 호출할 수 없으므로 InitializeAdapter는 어댑터가 호출하는 첫 번째 메서드여야 합니다. ShutdownAdapter를 호출할 때까지 InitializeAdapter를 다시 호출하면 안 됩니다. 그러나 어댑터를 종료하면 언제든지 InitializeAdapter 를 호출하여 다시 연결할 수 있습니다.
InitializeAdapter 는 PS 도우미와 어댑터 간의 통신을 시작합니다. 어댑터가 InitializeAdapter를 호출하면 PS 도우미는 암호화된 LRPC를 통해 ENTSSO(Enterprise Single Sign-On) 서비스를 호출합니다. 어댑터 이름을 사용하여 ENTSSO 서비스는 현재 어댑터에 대해 정의된 액세스 계정에 따라 액세스를 부여하거나 거부합니다.
InitializeAdapter를 호출하기 전에 ENTSSO 서비스를 시작해야 합니다. 어댑터 프로세스가 서비스를 시작하기에 충분한 권한으로 실행되지 않을 수 있으므로 PS 도우미가 ENTSSO를 자동으로 시작할 수 없습니다. 따라서 어댑터는 어댑터와 ENTSSO 간의 모든 통신을 시작해야 합니다.
PS 도우미는 먼저 ENTSSO 서비스와의 연결을 설정한 다음 명명된 이벤트를 만듭니다. 그런 다음 PS 도우미는 명명된 이벤트를 ENTSSO 서비스에 전달합니다. ENTSSO는 어댑터에 대한 알림이 도착하면 PS 도우미에 이벤트 신호를 사용합니다. ENTSSO는 어댑터가 이벤트를 기다리거나 이벤트를 무시하고 PS 도우미가 대신 대기할 수 있도록 어댑터에 이벤트를 반환합니다. 이렇게 하면 어댑터 스레딩 모델의 어댑터에 더 많은 유연성을 제공합니다. 이 이벤트는 ENTSSO가 ShutdownAdapter 호출로 시작된 처리를 완료할 때까지 어댑터에 유효합니다.
ENTSSO가 실행 중인 경우 ENTSSO 서비스는 PS 도우미에서 RPC(초기 원격 프로시저 호출) 호출을 수락합니다. 그런 다음 ENTSSO는 액세스 검사를 수행합니다. ENTSSO가 어댑터 구성 정보를 얻기 위해 데이터베이스에 액세스할 수 없는 경우 ENTSSO는 E_ACCESSDENIED 이벤트를 반환합니다. ENTSSO에 어댑터 구성 정보가 있지만 현재 데이터베이스에 연결할 수 없는 경우 ENTSSO는 계속해서 암호 변경 알림을 수락하고 알림을 로컬로 버퍼링하고 로컬 임시 파일에서 알림을 암호화합니다.
또한 InitializeAdapter 는 어댑터를 삭제하거나 사용하지 않도록 설정한 경우 E_ACCESSDENIED 반환합니다.
모든 오류에 대한 자세한 내용은 Windows 이벤트 로그에서 사용할 수 있습니다.
어댑터는 ENTSSO와 통신할 때 사용할 적절한 이름을 알고 있다고 가정합니다.
InitializeAdapter 는 단일 스레드입니다. InitializeAdapter를 호출하는 다른 모든 스레드는 InitializeAdapter가 완료될 때까지 차단됩니다. 또한 ShutdownAdapter 메서드와 동기화됩니다.
ShutdownAdapter를 실행하기 전에 어댑터 프로세스가 종료할 수 있습니다. 이 경우 ENTSSO가 해당 ShutdownAdapter를 받기 전에 ENTSSO가 다른 InitializeAdapter를 수신하는 경우 ENTSSO는 두 번째 ShutdownAdapter 호출을 다시 연결로 처리합니다. 이 경우 ENTSSO는 기존 이벤트를 정리하고 무효화하고 새 핸들을 만듭니다. 또한 ENTSSO는 종료 알림을 사용하여 이전 이벤트 핸들에 대해 보류 중인 ReceiveNotifications 를 완료합니다.
다시 연결하는 경우 InitializeAdapter에서 새 추적 ID가 반환됩니다. InitializeAdapter에서 반환된 추적 ID를 세션 ID로 간주할 수 있으므로 ENTSSO는 새 추적 ID를 반환합니다. 또한 ENTSSO는 보류 중인(확인되지 않은) 알림을 어댑터에 다시 제공합니다.
요구 사항
플랫폼: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows 11 및 Windows 10
또한 참조하십시오
ISSONotification 인터페이스(COM)
ISSONotification 멤버
Enterprise Single Sign-On을 사용한 프로그래밍