2012-06-06 7 views
6

저는 ACS (Azure Access Control Service)를 연구 중이며, 이질적 (구성 가능한) ID 공급자의 인증을 처리하는 것이 특히 좋은 것처럼 보입니다. 그런 다음 지원하는 여러 가지 추가 시나리오가 있습니다 (예 : ACS How-To's 참조).ACS를 사용하지 않을 때?

내가 가지고있는 질문은 그 반대입니다. 올바르게 사용하기 위해서는 ACS가 이 아니고,이 아니라고 이해하는 것이 도움이 될 것입니다. ACS의 한계 및/또는 ACS가 부적절한 시나리오는 무엇입니까?

(공공연한 웹 API 및 그에 상응하는 웹 사이트 프론트 엔드 인 Azure에서 호스팅 됨 - 즉, 사용자 신원에 대해 신경을 썼습니다. 원한다면 .NET을 사용하여 내 시스템을 구축 할 것이라고 가정 할 수도 있습니다.)

감사!

+1

ACS는 프로덕션에서 ACS를 사용했지만 ACS가 아니라 Windows Live에서 한 사람의 전자 메일 주소에 대한 클레임 유형을 얻을 수 없다는 사실을 알고 있습니다. 'AZURE ACS - Windows Live ID - 인증 된 사용자의 이메일과 이름은 어떻게 얻습니까? ': http://stackoverflow.com/questions/7871960/azure-acs-windows-live-id-how-do-i-get-the-email-and -name-of-the-authenticat이 문제를 해결할 수는 있지만 짜증나게 느꼈습니다. 다른 사람들이 생각하는 것을 보길 바랍니다! – user728584

+0

@ user728584 : 감사합니다. 필자가 여전히 자신의 사용자 등록을 관리해야한다는 사실도이 질문에서 제기됩니다. 그래, 나는 ACS 문서, Vittorio Bertocci 비디오 등을 잠시 동안 파고있다. 그리고 다른 방법으로 물어 보면 잘하면 물건을 더 분명하게 만들 것이다. –

+0

비토리오 (제독의 정체성)와 함께 옳은 길을. ADFSV2도 우수합니다. 내 클라이언트는 양식 기반 인증 (기존 기능)과 함께 사용하여 일반 대중에게 소셜 미디어 로그인을 제공합니다. 페이스 북은 ACS에 모든 보안 nasties을 추상, 치료를 작동! – user728584

답변

5

ID 공급자로 ACS를 사용하지 마십시오.

간혹 ACS의 역할에 대한 혼란이 있습니다. ACS at is core는 연합 공급자이지만 공유 비밀 또는 인증서를 사용하여 ACS에 직접 인증하는 백엔드 서비스 (신뢰할 수있는 하위 시스템)를 원하는 유효한 시나리오가 있습니다. 이는 서비스 ID를 사용하여 수행 할 수 있습니다. 그러나 한 번 이상 여러 계정을 프로비저닝해야하는 ACS 시나리오가 제안되었으며, 이는 각 사용자에 대한 서비스 ID를 작성함으로써 이루어질 것입니다.

ACS가 실제로 설계된 방식이 아닙니다. suddently 수천 명의 사용자가있는 경우 ACS를 신뢰할 수있는 원본 사용자 디렉터리로 확장하지 않습니다. ACS는 다양한 ID 공급자의 들어오는 클레임 ​​유형을 정규화하거나 역할 클레임 생성과 같은 간단한 권한 부여 정책을 위해 설계된 멋진 규칙 엔진을 제공합니다.

그러나 여기 ACS의 기능을 AD 및 ADFS와 같은 인증 및 권한 부여 솔루션과 완전히 혼동해서는 안됩니다. 즉, ACS는 AD/ADFS 버전이 될 수 없습니다.

+1

고마워, 그게 내가 이해하려고하는 종류의거야. (나는 실제로 그것을 수행하는 것을 고려하고있었습니다. 실제로 개별 X.509 인증서로 인증해야하는 많은 클라이언트 장치가 있습니다. 개념적으로 ACS에 연결하는 방법에 어려움을 겪었습니다. –

4

ACS에서 Windows Live를 ID 공급자로 사용할 수는 있지만 사용하지 않으려는 경우가 있습니다. 수신하는 사용자 ID는 ACS 네임 스페이스에 따라 다릅니다. 즉, 응용 프로그램에서 여러 개의 ACS 네임 스페이스를 사용하면 (예 : 유럽과 미국의 경우) 일부 문제가 발생할 수 있습니다.

사용자가 미국 네임 스페이스를 통해 로그인하는 경우를 생각해보십시오. 응용 프로그램은 해당 사용자의 ID (해시)를 받게되며 응용 프로그램에서 해당 사용자의 프로파일을 만들 수 있습니다. 일주일 후 사용자는 유럽으로 여행하여 유럽 네임 스페이스를 통해 로그인 할 수 있습니다. 이 사용자가 동일하더라도 해당 사용자에 대해 다른 ID (해시)를 얻으므로 새 사용자 인 것처럼 보이지만 실제로는 그렇지 않습니다. 이것은 ID (해시)가 ACS 네임 스페이스에 의존하기 때문입니다.

Quoting an MSFT employee

:

당신은 윈도우 라이브 ID에 대한 ACS로부터받은 사용자 ID는 서비스 네임 스페이스에서 해당 사용자에게 특정 될 것입니다. 다른 서비스 네임 스페이스를 사용하면 동일한 사용자에 대해 다른 값을 갖게됩니다. 그래서 귀하의 질문에 대답 : (자극)에 다른 구독에 * 연구소 ACS 및 생산성 ACS [다른 ID를]

  • 다른 신뢰 당사자를 [다른 ID를] 같은 가입에

  • 다른 RP 수 [ 내가 삭제하고 같은 영역에 RP를 다시 작성하는 경우 서비스 네임 스페이스, 동일한 계정 [동일 ID는, 같은 가입 2 네임 스페이스]

  • 다른 같은 경우 동일 ID

  • ,363,210

업데이트 :

는 의견 중 하나에 응답하려면, 당신은 윈도우 라이브 ID 공급자의 이메일 주소를 얻을 수 없습니다 것은 사실이다. 하지만 당신은 당신이 공개 신원 제공자로부터 얻을 수있는 정보를 통제 할 수 없다고 가정해야합니다. 좋은 방법은 사용자의 식별자에 의존하고 사용자 프로필을 작성하는 것입니다 (애플리케이션에서 프로필을 관리 할 것입니다). 아이디 공급자로부터 정보를 얻으면 이미 프로파일을 업데이트 할 수 있지만이 정보를 사용할 수없는 경우 사용자에게 프로파일 업데이트를 요청해야합니다. 자세한 내용은 BlobShare 예제를 확인하십시오.

+0

철저한 대답은 +1입니다. 그러나 당신이 다루는 것은 특정 시나리오에서 ACS의 기술적 인 (잘 설계된) 제한입니다. 나는 ACS가 적합하지 않은 시나리오 *에 더 관심이있다. –

관련 문제