사용자 관리 액세스
User-Managed AccessUMA(사용자 관리 액세스)는 OAuth 기반 액세스 관리 프로토콜 표준입니다.이 표준의 버전 1.0은 2015년 [1]3월 23일 칸타라 이니셔티브에 의해 승인되었다.
UMA를 [2]개발한 그룹의 헌장에 기술된 바와 같이, 프로토콜 규격의 목적은 "자원 소유자가 소유자를 대신하여 또는 자율적 요청 당사자에 의한 소유자의 권한으로 이루어지는 데이터 공유 및 기타 보호된 자원 액세스를 제어할 수 있도록 하는 것"이다.이 목적은 웹 어플리케이션과 사물인터넷(IoT)에 프라이버시와 동의의 영향을 미칩니다.이것은, 표준 [3]그룹의 참가자가 기고한 사례 연구집으로부터 조사되고 있습니다.
이력 및 배경
칸타라 이니셔티브의 UMA 작업[4] 그룹은, 2009년 8월 6일에 제1회[5] 회의를 개최했다.UMA의 설계 원칙과 기술 설계는 Sun Microsystems 직원이 2008년 3월에 시작한 ProtectServe라는 프로토콜에 대한 이전 작업을 통해 알게 되었습니다.한편 ProtectServe는 벤더 관계 관리 운동의 목표와 피드 기반 VRM이라고 불리는 분기 작업에 영향을 받았습니다.
ProtectServe 및 UMA의 초기 버전은 OAuth 1.0 프로토콜을 활용했습니다.OAuth는 Web Resource Authorization Protocol(WRAP) 사양의 공개와 그에 이은 OAuth 2.0 드래프트를 통해 큰 변화를 겪었기 때문에 UMA 사양은 보조를 맞추고 있으며 현재 몇 가지 주요 프로토콜 흐름에 OAuth 2.0 규격 패밀리를 사용하고 있습니다.
UMA는 Open을 사용하지 않거나 Open에 의존하지 않습니다.사용자 식별 수단으로서의 ID 2.0.단, 옵션으로 OAuth 기반 Open을 사용합니다.ID Connect 프로토콜은 인증 사용자의 액세스 정책을 충족시키기 위해 요청 당사자로부터 ID 클레임을 수집하는 수단입니다.
또한 UMA는 사용자 정책을 인코딩하거나 정책 결정을 요구하는 수단으로서 eXtensible Access Control Markup Language(XACML)를 사용하거나 이에 의존하지 않습니다.정책 평가는 UMA 관점에서 Authorization Server(AS; 인가 서버)에 대해 내부적으로 실행되므로 UMA는 정책 형식을 지시하지 않습니다.일반적으로 XACML은 AS 내의 정책을 구현하기 위해 사용됩니다.이 구현은 UMA 범위를 벗어납니다. 액세스 권한을 요청하는 UMA 프로토콜 흐름은 XACML 프로토콜과 몇 가지 공통 기능을 가지고 있습니다.
표준화 상태
UMA 그룹은 칸타라 이니셔티브에서[6] 작업을 수행하며, UMA 표준화 작업의 궁극적인 본거지로서 인터넷 기술 특별 조사위원회(IETF)에 일련의 인터넷 초안 규격을 제공하기도 했다.이를 위해 WG는 검토하기 위해 IETF에 여러 개별 인터넷 초안을 제공했습니다.그 중 하나는 OAuth [8]동적 클라이언트 [7]등록 사양으로, 최종적으로 OAuth용으로 개발된 보다 일반적인 메커니즘의 입력으로 기능했습니다.UMA는 2019년 [10]3월 IETF 104 회의에서 OAuth Working[9] Group에 제시되었지만, IETF에 의해 채택된 UMA 규격은 없었습니다.
구현 및 도입 현황
UMA 코어 프로토콜에는 몇 가지 오픈 소스 구현을 포함한 여러 가지 [11]구현이 있습니다.액티브하고 이용 가능한 오픈 소스 구현에는 ForgeRock,[12] Gluu,[13] IDENTOS Inc., MITREid Connect,[15] Atricore, Node-UMA,[16] Roland Hedberg,[17] Keycloak [18]및 WSO2 Identity [19]Server가 포함됩니다.[14]Kantara Initiative 그룹은 "개발자가 UMA 보호 및 권한 부여 API를 응용 프로그램, 서비스 및 장치에 통합할 수 있도록 지원하는 몇 가지 인기 있는 프로그래밍 언어로 된 자유 및 오픈 소스 소프트웨어(FOSS)" 개발에 힘쓰고 있습니다.[20]
UMA 대응 제품은 Gluu,[21] Jericho Systems,[22] ForgeRock,[23] IDENTOS Inc [24]및 WSO2 Identity Server에서 구입할 수 있습니다.
OAuth 2.0과의 비교
그림(오른쪽 참조)은 UMA가 OAuth 2.0에 추가한 주요 기능을 보여줍니다.
일반적인 OAuth 플로우에서는 클라이언트애플리케이션을 동작시키는 인적자원 소유자(RO)가 권한 서버(AS)로 리다이렉트 되어 로그인하고 액세스 토큰 발행에 동의함으로써 클라이언트애플리케이션이 장래 RO를 대신해 자원 서버(RS)에 액세스 할 수 있게 됩니다(아마도 범위 내).RS 와 AS 는 같은 시큐러티 도메인내에서 동작하고 있을 가능성이 높고, 그 사이의 통신은, 메인 OAuth 사양에 의해서 표준화 되어 있지 않습니다.
UMA는 세 가지 주요 개념과 대응하는 구조와 흐름을 추가합니다.첫째, RS가 통신하는 AS에서 표준화된 API(보호 API)를 정의하고, 이를 통해 여러 RS가 하나의 AS와 통신할 수 있으며, API 자체가 OAuth로 보호되기 때문에 각 쌍 간에 공식적인 신뢰를 확립할 수 있습니다.이를 통해 AS는 일원화된 사용자 인터페이스를 사용하여 RO를 제공할 수도 있습니다.다음으로, UMA는 RO로부터 자율적인 Requesting Party(RqP; 요구자)의 정식 개념을 정의하고, 파티간 공유와 액세스 인가의 위임을 가능하게 합니다.RO는 실행 시 토큰 발행에 동의할 필요는 없지만 AS에서 정책을 설정할 수 있으므로 RqP가 비동기적으로 접근을 시도할 수 있습니다.셋째, UMA를 사용하면 예를 들어 RqP에서의 신뢰 상승 프로세스를 기반으로 허가 데이터와 관련된 토큰의 성공적인 발급을 시도할 수 있습니다.
적용 가능한 사용 사례
UMA의 아키텍처는 소비자용 및 기업용 다양한 사용 사례를 제공할 수 있습니다.UMA 그룹은 [3]Wiki에서 도입 사례를 수집합니다.
의료 IT 및 소비자 보건에 대한 일련의 사용 사례가 있습니다.오픈 중Heart([25]Health Relationship Trust)라는 이름의 작업 그룹인 ID Foundation은 UMA를 기반으로 "개인이 RESTful 건강 관련 데이터 공유 API에 대한 액세스 허가를 제어할 수 있는 일련의 프라이버시 및 보안 사양을 조화 및 개발"하기 위해 노력하고 있습니다.
UMA의 발전에 영향을 준 또 다른 사용 사례로는 벤더 관계 관리 방식의 "개인 데이터 저장소" 영역이 있습니다.이 개념에서는 자원 공유 관리 기능을 갖춘 대시보드를 제공하기 위해 개인은 다양한 소비자용 디지털 자원 호스트로부터의 접속을 받아들이는 인가 서비스의 오퍼레이터를 선택할 수 있습니다.
레퍼런스
- ^ "User Managed Access - Leadership Council - Kantara Initiative".
- ^ "Charter - WG - User Managed Access - Kantara Initiative".
- ^ a b "Case Studies - WG - User Managed Access - Kantara Initiative".
- ^ http://kantarainitiative.org/confluence/display/uma/Home UMA 워크그룹 Wiki
- ^ http://kantarainitiative.org/confluence/display/uma/Meetings+and+Minutes?src=contextnavchildmode UMA 워크그룹 회의록
- ^ "Home - WG - User Managed Access - Kantara Initiative".
- ^ http://tools.ietf.org/html/draft-ietf-oauth-dyn-reg 인터넷 드래프트: OAuth 2.0 다이내믹 클라이언트 등록 코어 프로토콜
- ^ Richer, Justin; Jones, Michael; Bradley, John; Machulak, Maciej; Hunt, Phil (July 2015). "OAuth 2.0 Dynamic Client Registration Protocol".
{{cite journal}}:Cite 저널 요구 사항journal=(도움말) - ^ "Home - WG - Web Authorization Protocol (Oauth) - IETF".
- ^ "IETF104 - oauth WG - meeting minutes".
- ^ "UMA Implementations - WG - User Managed Access - Kantara Initiative".
- ^ "Digital Identity for Consumers and Workforce ForgeRock".
- ^ http://www.gluu.org/open-source/open-source-vs-on-demand/ UMA의 Wayback Machine Gluu OSS 구현에서 2014-02-09 아카이브 완료
- ^ https://identos.com/ IDENTOS Inc.Federated Privacy Exchange(FPX)
- ^ https://github.com/mitreid-connect/OpenID-Connect-Java-Spring-Server/tree/uma[영구 데드링크]
- ^ https://github.com/atricore/node-uma/ Node.js용 UMA의 Atricore OSS 구현
- ^ "Rohe/Pyuma". GitHub. 22 January 2018.
- ^ http://www.keycloak.org/docs/4.0/release_notes/index.html[데드링크]
- ^ a b "User Managed Access - Identity Server 5.8.0 latest - WSO2 Documentation".
- ^ http://kantarainitiative.org/confluence/display/umadev/Home[ 죽은 링크]
- ^ http://www.gluu.org/gluu-server/access-management/[ 죽은 링크]
- ^ https://www.jerichosystems.com/company/pr04082015.html
- ^ "User-Managed Access (UMA) - ForgeRock".
- ^ "Federated Privacy Exchange - by IDENTOS".
- ^ "HEART WG OpenID". 27 October 2014.