def _create_subject_identifier(self, user_id, client_id, redirect_uri):
        # type (str, str, str) -> str
        """
        Creates a subject identifier for the specified client and user
        see <a href="http://openid.net/specs/openid-connect-core-1_0.html#Terminology">
        "OpenID Connect Core 1.0", Section 1.2</a>.
        :param user_id: local user identifier
        :param client_id: which client to generate a subject identifier for
        :param redirect_uri: the clients' redirect_uri
        :return: a subject identifier for the user intended for client who made the authentication request
        """
        supported_subject_types = self.configuration_information['subject_types_supported'][0]
        subject_type = self.clients[client_id].get('subject_type', supported_subject_types)
        sector_identifier = urlparse(redirect_uri).netloc
        return self.authz_state.get_subject_identifier(subject_type, user_id, sector_identifier)