야디스
1. 개요
야디스(XRDS)는 XRI 리소스에 대한 정보를 담고 있는 XML 기반 형식으로, 서비스 발견 및 타입 발견을 위해 설계되었다. OpenID, OAuth, LID 등 분산 ID 시스템에서 사용자의 ID 공급자를 찾고 관련 서비스를 연결하는 데 사용된다. XRDS 문서는 `
-
통신 프로토콜 -
안드로이드 디버그 브리지
안드로이드 디버그 브리지(ADB)는 안드로이드 기기를 디버깅하고 제어하는 명령줄 도구로, 파일 복사, 앱 설치, 로그 확인, 셸 명령어 실행 등의 기능을 제공하며, 클라이언트-서버 아키텍처를 기반으로 USB 또는 Wi-Fi를 통해 통신한다. -
통신 프로토콜 -
OStatus
OStatus는 분산형 소셜 네트워킹을 위한 연합 프로토콜로, StatusNet과 Identi.ca 간의 연동을 위해 개발되었으며, 현재는 프렌디카 등이 지원한다.
2. XRDS의 개념 및 목적
XRDS (Extensible Resource Descriptor Sequence)는 XRI 리소스에 대한 정보를 담고 있는 XML 기반의 형식이다. 이 형식은 서비스 발견(service discovery)과 타입 발견(type discovery)을 위해 설계되었으며, 특히 OpenID, OAuth, LID 등과 같은 분산 ID 시스템에서 사용자의 ID 공급자를 찾고 관련 서비스를 연결하는 데 중요한 역할을 한다.
위의 예제 코드는 XRDS 문서의 구조를 보여준다. 여러 개의 `Service` 요소가 정의되어 있으며, 각 서비스는 `Type`, `URI`, `openid:Delegate` 등의 태그를 통해 특정 서비스 유형, 서비스 제공자의 엔드포인트 URI, 그리고 위임된 ID 등을 나타낸다. `priority` 속성은 서비스의 우선순위를 지정하는 데 사용되며, 낮은 값을 가진 서비스가 우선적으로 선택된다. 예를 들어, 위의 코드에서 `priority` 값이 10인 LiveJournal의 OpenID 서비스가 `priority` 값이 50인 MyOpenID 서비스보다 먼저 고려된다.
2.1. 자원 메타데이터 관리
2.2. 분산 ID 및 인증 프로토콜 지원
야디스는 OpenID, OAuth와 같은 분산 ID 및 인증 프로토콜에서 XRDS 문서를 활용하여 서비스 검색 및 메타데이터 제공 기능을 수행한다. 위의 예시와 같이 XRDS 문서는 XML 형식으로 표현되며, 서비스의 우선순위, 타입, URI, 위임 정보 등을 포함한다.
OpenID 1.0의 경우, `
위의 예시에서 priority가 10으로 설정된 서비스는 `http://openid.net/signon/1.0` 타입을 가지며, `http://www.livejournal.com/openid/server.bml`를 URI로, `http://www.livejournal.com/users/frank/`를 위임 정보로 사용한다.
3. XRDS 문서 구조
XRDS 문서는 XML 기반으로 구성되며, 최상위 엘리먼트는 `
`
`
제공된 예제에서는 세 가지 서비스가 정의되어 있다. 첫 번째 서비스는 `priority`가 50이고, OpenID 1.0 프로토콜을 지원하며, 서비스 엔드포인트는 `http://www.myopenid.com/server`이다. 두 번째 서비스는 `priority`가 10이고, 역시 OpenID 1.0 프로토콜을 지원하며, 서비스 엔드포인트는 `http://www.livejournal.com/openid/server.bml`이다. 세 번째 서비스는 `priority`가 20이고, LID 2.0 프로토콜을 지원하며, 서비스 엔드포인트는 `http://mylid.net/liddemouser`이다. 마지막 `
3.1. `<XRDS>` 요소
3.2. `<XRD>` 요소
3.3. `<Service>` 요소
4. XRDS 사용 사례
OpenID 인증 과정에서 사용되는 XRDS 문서는 XML 형식으로 표현된다. 이 문서에는 서비스 유형, URI, 우선순위 등의 정보가 포함되어 있다. 예를 들어, `http://openid.net/signon/1.0` 타입의 서비스는 `www.myopenid.com/server`와 `www.livejournal.com/openid/server.bml` URI를 통해 제공되며, 각각 다른 우선순위를 갖는다.
야디스는 OAuth를 이용한 자원 접근 권한 부여 과정에서 XRDS 문서를 활용한다. 위의 예시에서 볼 수 있듯이, XRDS 문서는 XML 형식으로 서비스의 우선순위(priority), 타입(Type), URI, 델리게이트(Delegate) 등의 정보를 담고 있다. 야디스는 이러한 정보를 통해 OpenID, LID 등 다양한 인증 프로토콜을 지원하며, 사용자가 어떤 서비스를 통해 인증할지 선택할 수 있도록 돕는다.
XRDS는 다양한 서비스 및 프로토콜에서 사용될 수 있다. 예를 들어, 위의 예시 코드는 OpenID, LID 등에서 XRDS가 어떻게 활용될 수 있는지 보여준다. 코드를 보면, `
4.1. OpenID 인증
OpenID 인증 과정에서 사용되는 XRDS 문서는 위와 같은 XML 형식으로 표현된다. 이 문서에는 서비스 유형, URI, 우선순위 등의 정보가 포함되어 있다. 예를 들어, `http://openid.net/signon/1.0` 타입의 서비스는 `www.myopenid.com/server`와 `www.livejournal.com/openid/server.bml` URI를 통해 제공되며, 각각 다른 우선순위를 갖는다.
4.2. OAuth 권한 부여
야디스는 OAuth를 이용한 자원 접근 권한 부여 과정에서 XRDS 문서를 활용한다. 위의 예시에서 볼 수 있듯이, XRDS 문서는 XML 형식으로 서비스의 우선순위(priority), 타입(Type), URI, 델리게이트(Delegate) 등의 정보를 담고 있다. 야디스는 이러한 정보를 통해 OpenID, LID 등 다양한 인증 프로토콜을 지원하며, 사용자가 어떤 서비스를 통해 인증할지 선택할 수 있도록 돕는다.
4.3. 기타 활용 사례
XRDS는 다양한 서비스 및 프로토콜에서 사용될 수 있다. 예를 들어, 위의 예시 코드는 OpenID, LID 등에서 XRDS가 어떻게 활용될 수 있는지 보여준다. 코드를 보면, `