[Openid-specs-fastfed] Preliminary feedback from IIW
Marcos Sanz
sanz at denic.de
Thu Oct 25 15:59:12 UTC 2018
Hi Darin,
> IdP Discovery
> -------------------------------------
> We ran an IIW session to deep dive on IdP discovery from an email
address.
>
> The attendees confirmed the pain points of hosting WebFinger services
under the root domain. One participant had previously built
> dynamic discovery based on domain.
webfinger itself had some issues for us (not just only because running
under the root domain). The issues we encountered and the way we discover
IdP via DNS are described here
https://www.ietf.org/archive/id/draft-sanz-openid-dns-discovery-01.txt
Needless to say this solution also enables CNAMEs.
> Many corporate customers were blocked because they were unable to host
services under the root.
> Solution was a proxy as described below in (3).
>
> The discussion circled around 3 alternatives:
>
> (1) Subdomains.
>
> -- Example: Instead of "https://<domain>/.well-known/webfinger" ,
flip it around into "https://webfinger.well-known.<domain>"
> -- Pros: Easiest for everyone to implement. Just works for HTTP
GETs. Enables CNAMES, which is nice when using 3rd party
> hosted IdPs and you want to point your domain at the hosted service.
> -- Cons: No well-established patterns for reserved subdomains. More
difficult to standardize. Subdomains existed in early
> versions of WebFinger but were cut because of these challenges.
Reserved domain names or domain names with "special use" have always been
"problematic" within the IETF, as Mike already said. You could take a look
at RFC 6761 and 8244 to better understand the mess.
> (2) SRV records
>
> -- Example: DNS SRV record for "webfinger.<domain>" that points to
the location of that service.
Actually "_webfinger.<domain>", dictates RFC 2782
We also looked at SRV records (and NAPTR records, and S-NAPTR..) but ended
up using TXT because of being more straightahead (that's what e.g. DMARC
and DKIM also did). Scoping of the TXT record is done according to the
recommendations of
https://tools.ietf.org/html/draft-ietf-dnsop-attrleaf-14
> -- Pros: There exists a well-established SRV registry.
This is the thing:
https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml
It's not just an "SRV registry", but THE service names registry (a
precursor of which is referenced by the SRV spec).
> -- Cons: More difficult for application developers to integrate with.
Can't make a simple HTTP GET to a URL. SRV require an
> explicit DNS resolution first. Some environments, like javascript in
browser, don't allow SRV queries.
Don't allow for _any_ kind of direct DNS queries. That's the reason why..
> (3) SRV records + Proxy
>
> -- Example: Same as above, but run a proxy. For example:
"webfinger.org". Make the WebFinger request to the proxy using a
> regular HTTP GET. Behind the scenes, proxy resolves the SRV record and
invokes the authoritative WebFinger server.
> -- Pros: Preserves the simple experience for developers. Uses
standard mechanisms like SRV records behind the scenes.
> -- Cons: Somebody has to run the proxy.
..we also run a proxy. FWIW
https://lookup.freedom-id.de/lookup/$your_domain_name_here
e.g.
https://lookup.freedom-id.de/lookup/sanz.denic.de
The proxy also performs DNSSEC signature validation and returns that
information to the client. The JSON returned is proprietary and hasn't
been specified anywhere, we didn't have a need for that.
Hope that helps.
Best regards,
Marcos
More information about the Openid-specs-fastfed
mailing list