from authlib.common.urls import urlparse def get_well_known_url(issuer, external=False, suffix='oauth-authorization-server'): """Get well-known URI with issuer via `Section 3.1`_. .. _`Section 3.1`: https://tools.ietf.org/html/rfc8414#section-3.1 :param issuer: URL of the issuer :param external: return full external url or not :param suffix: well-known URI suffix for RFC8414 :return: URL """ parsed = urlparse.urlparse(issuer) path = parsed.path if path and path != '/': url_path = '/.well-known/{}{}'.format(suffix, path) else: url_path = '/.well-known/{}'.format(suffix) if not external: return url_path return parsed.scheme + '://' + parsed.netloc + url_path