
우리는 인증/연합 공급자로 Microsoft ADFS(Active Directory Federation Services)를 보유하고 있습니다. 우리는 여러 외부 공급업체, SaaS 제공업체 등에 대해 SAML을 통해 ID 페더레이션을 수행하는 데 이를 사용합니다. 또한 OAuth만 지원하는 공급업체가 여러 개 있으므로 ADFS 2016의 OAuth 지원을 사용하여 해당 공급업체와의 통합을 구성했습니다. 따라서 필요에 따라 SAML 어설션과 OAuth 액세스 토큰을 모두 생성할 수 있습니다.
이제 공급업체 A(SAML 인증을 위해 구성됨)가 공급업체 B(OAuth 토큰을 요구하도록 구성됨)에 대해 RESTful 서비스 호출을 수행해야 하는 상황에 직면했습니다. ADFS에서 생성된 SAML 어설션을 ADFS에서 생성된 OAuth 토큰으로 변환하는 방법이 있습니까? 두 자격 증명이 모두 ADFS에 의해 생성된다는 점을 고려하면 ADFS에는 변환을 수행하는 방법이 있을 것이라고 생각됩니다. SAML 어설션을 게시하고 그 대가로 OAuth 토큰을 돌려받을 수 있는 엔드포인트가 있나요? 어떤 도움이라도 대단히 감사하겠습니다!!
답변1
ADFS 및 Oauth에 대해 답변을 드릴 수는 없지만 서로 다른 두 가지 웹 기반 SSO 시스템을 통합하는 것과 관련하여 몇 가지 경험을 제공하여 생각해 볼 수 있는 내용을 알려드릴 수 있습니다.
제 상황에서는 기존 독점 SSO 시스템을 활용하기 위해 Shibboleth IdP(SAML 2.0의 ADFS와 동일한 역할)를 얻고 싶었습니다.
내가 한 일은 '외부' 인증을 사용하도록 IdP를 구성하는 것이었습니다. 이 경우 독점 SSO 시스템이 외부 인증 URL만 보호하도록 했습니다. 그래서 사람들이 로그인할 때 외부 인증 URL을 방문하고 다른 SSO 시스템을 통해 작업한 다음 인증된 상태로 돌아와 외부 인증 URL을 통해 IdP로 이동합니다. 그런 다음 세션을 부여합니다.
이는 실제로 한 시스템을 다른 시스템으로 '변환'하는 것이 아니라 외부 인증을 사용하여 한 시스템을 다른 시스템으로 향상시킬 수 있음을 보여줍니다.
경고 한마디: 로그아웃이 더 큰 문제가 됩니다. 다른 시스템 로그아웃 시스템도 통합하기 위해 IdP와 함께 제공되는 SLO 템플릿을 사용자 정의해야 했습니다.... ADFS는 그다지 유연하지 않습니다.
건배, 카메론